{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import os\n",
    "from models import model_init\n",
    "from data_provider.data_factory import Data_Provider\n",
    "import matplotlib.pyplot as plt\n",
    "from utils.task import ahead_task_parser\n",
    "from utils.tools import dotdict\n",
    "import yaml, json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = 'PatchTST'\n",
    "data = 'solar'\n",
    "ahead = 'day'\n",
    "version = 'latest'\n",
    "ckpt_base = './checkpoints/solar'\n",
    "\n",
    "ckpt_id = f'_{model}_{data}_{ahead}_ahead'\n",
    "\n",
    "if version == 'latest':\n",
    "    # find all the path that end with the ckpt_id\n",
    "    ckpt_paths = [os.path.join(ckpt_base, i) for i in os.listdir(ckpt_base) if i.endswith(ckpt_id)]\n",
    "    # the path is in format of yyyy-mm-dd{ckpt_id}, now find the latest one\n",
    "    ckpt_paths.sort()\n",
    "    ckpt_path = ckpt_paths[-1]\n",
    "else:\n",
    "    ckpt_path = version + ckpt_id\n",
    "\n",
    "config = dotdict(json.load(open(os.path.join(ckpt_path, 'args.json'))))\n",
    "config.model_config = dotdict(config.model_config)\n",
    "config.data_config = dotdict(config.data_config)\n",
    "\n",
    "config.device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "config.batch_size = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Model(\n",
       "  (model): PatchTST_backbone(\n",
       "    (revin_layer): RevIN()\n",
       "    (padding_patch_layer): ReplicationPad1d((0, 8))\n",
       "    (backbone): TSTiEncoder(\n",
       "      (W_P): Linear(in_features=16, out_features=16, bias=True)\n",
       "      (dropout): Dropout(p=0.3, inplace=False)\n",
       "      (encoder): TSTEncoder(\n",
       "        (layers): ModuleList(\n",
       "          (0-2): 3 x TSTEncoderLayer(\n",
       "            (self_attn): _MultiheadAttention(\n",
       "              (W_Q): Linear(in_features=16, out_features=16, bias=True)\n",
       "              (W_K): Linear(in_features=16, out_features=16, bias=True)\n",
       "              (W_V): Linear(in_features=16, out_features=16, bias=True)\n",
       "              (sdp_attn): _ScaledDotProductAttention(\n",
       "                (attn_dropout): Dropout(p=0.0, inplace=False)\n",
       "              )\n",
       "              (to_out): Sequential(\n",
       "                (0): Linear(in_features=16, out_features=16, bias=True)\n",
       "                (1): Dropout(p=0.3, inplace=False)\n",
       "              )\n",
       "            )\n",
       "            (dropout_attn): Dropout(p=0.3, inplace=False)\n",
       "            (norm_attn): Sequential(\n",
       "              (0): Transpose()\n",
       "              (1): BatchNorm1d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "              (2): Transpose()\n",
       "            )\n",
       "            (ff): Sequential(\n",
       "              (0): Linear(in_features=16, out_features=128, bias=True)\n",
       "              (1): GELU(approximate='none')\n",
       "              (2): Dropout(p=0.3, inplace=False)\n",
       "              (3): Linear(in_features=128, out_features=16, bias=True)\n",
       "            )\n",
       "            (dropout_ffn): Dropout(p=0.3, inplace=False)\n",
       "            (norm_ffn): Sequential(\n",
       "              (0): Transpose()\n",
       "              (1): BatchNorm1d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "              (2): Transpose()\n",
       "            )\n",
       "          )\n",
       "        )\n",
       "      )\n",
       "    )\n",
       "    (head): Flatten_Head(\n",
       "      (flatten): Flatten(start_dim=-2, end_dim=-1)\n",
       "      (linear): Linear(in_features=336, out_features=24, bias=True)\n",
       "      (dropout): Dropout(p=0, inplace=False)\n",
       "    )\n",
       "  )\n",
       ")"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_TST = model_init(config.model, config.model_config, config).to(config.device)\n",
    "# load the model\n",
    "model_TST.load_state_dict(torch.load(os.path.join(ckpt_path, 'checkpoint.pth'))) \n",
    "model_TST.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "./checkpoints/04-25-0548_TGTSF_solar_day_ahead\n"
     ]
    }
   ],
   "source": [
    "model = 'TGTSF'\n",
    "data = 'solar'\n",
    "ahead = 'day'\n",
    "version = 'latest'#'04-16-0316'#'latest'\n",
    "ckpt_base = './checkpoints/'#+data\n",
    "\n",
    "ckpt_id = f'_{model}_{data}_{ahead}_ahead'\n",
    "\n",
    "if version == 'latest':\n",
    "    # find all the path that end with the ckpt_id\n",
    "    ckpt_paths = [os.path.join(ckpt_base, i) for i in os.listdir(ckpt_base) if i.endswith(ckpt_id)]\n",
    "    # the path is in format of yyyy-mm-dd{ckpt_id}, now find the latest one\n",
    "    ckpt_paths.sort()\n",
    "    ckpt_path = ckpt_paths[-1]\n",
    "else:\n",
    "    ckpt_path = version + ckpt_id\n",
    "    ckpt_path = os.path.join(ckpt_base, ckpt_path)\n",
    "\n",
    "config = dotdict(json.load(open(os.path.join(ckpt_path, 'args.json'))))\n",
    "config.model_config = dotdict(config.model_config)\n",
    "config.data_config = dotdict(config.data_config)\n",
    "\n",
    "config.device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "config.batch_size = 1\n",
    "print(ckpt_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Model(\n",
       "  (TS_encoder): TS_encoder(\n",
       "    (attentions): TransformerEncoder(\n",
       "      (layers): ModuleList(\n",
       "        (0-2): 3 x TransformerEncoderLayer(\n",
       "          (self_attn): MultiheadAttention(\n",
       "            (out_proj): NonDynamicallyQuantizableLinear(in_features=256, out_features=256, bias=True)\n",
       "          )\n",
       "          (linear1): Linear(in_features=256, out_features=1024, bias=True)\n",
       "          (dropout): Dropout(p=0.3, inplace=False)\n",
       "          (linear2): Linear(in_features=1024, out_features=256, bias=True)\n",
       "          (norm1): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (norm2): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (dropout1): Dropout(p=0.3, inplace=False)\n",
       "          (dropout2): Dropout(p=0.3, inplace=False)\n",
       "        )\n",
       "      )\n",
       "      (norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "    )\n",
       "    (input_encoder): Linear(in_features=8, out_features=256, bias=True)\n",
       "    (dropout_layer): Dropout(p=0.3, inplace=False)\n",
       "  )\n",
       "  (text_encoder): text_encoder(\n",
       "    (cross_encoder): TransformerDecoder(\n",
       "      (layers): ModuleList(\n",
       "        (0-2): 3 x TransformerDecoderLayer(\n",
       "          (self_attn): MultiheadAttention(\n",
       "            (out_proj): NonDynamicallyQuantizableLinear(in_features=256, out_features=256, bias=True)\n",
       "          )\n",
       "          (multihead_attn): MultiheadAttention(\n",
       "            (out_proj): NonDynamicallyQuantizableLinear(in_features=256, out_features=256, bias=True)\n",
       "          )\n",
       "          (linear1): Linear(in_features=256, out_features=1024, bias=True)\n",
       "          (dropout): Dropout(p=0.3, inplace=False)\n",
       "          (linear2): Linear(in_features=1024, out_features=256, bias=True)\n",
       "          (norm1): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (norm2): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (norm3): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (dropout1): Dropout(p=0.3, inplace=False)\n",
       "          (dropout2): Dropout(p=0.3, inplace=False)\n",
       "          (dropout3): Dropout(p=0.3, inplace=False)\n",
       "        )\n",
       "      )\n",
       "      (norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "    )\n",
       "    (dropout_layer): Dropout(p=0.3, inplace=False)\n",
       "  )\n",
       "  (mixer): text_temp_cross_block(\n",
       "    (cross_encoder): TransformerDecoder(\n",
       "      (layers): ModuleList(\n",
       "        (0-2): 3 x TransformerDecoderLayer(\n",
       "          (self_attn): MultiheadAttention(\n",
       "            (out_proj): NonDynamicallyQuantizableLinear(in_features=256, out_features=256, bias=True)\n",
       "          )\n",
       "          (multihead_attn): MultiheadAttention(\n",
       "            (out_proj): NonDynamicallyQuantizableLinear(in_features=256, out_features=256, bias=True)\n",
       "          )\n",
       "          (linear1): Linear(in_features=256, out_features=1024, bias=True)\n",
       "          (dropout): Dropout(p=0.0, inplace=False)\n",
       "          (linear2): Linear(in_features=1024, out_features=256, bias=True)\n",
       "          (norm1): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (norm2): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (norm3): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (dropout1): Dropout(p=0.0, inplace=False)\n",
       "          (dropout2): Dropout(p=0.0, inplace=False)\n",
       "          (dropout3): Dropout(p=0.0, inplace=False)\n",
       "        )\n",
       "      )\n",
       "      (norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "    )\n",
       "    (self_encoder): TransformerDecoder(\n",
       "      (layers): ModuleList(\n",
       "        (0-2): 3 x TransformerDecoderLayer(\n",
       "          (self_attn): MultiheadAttention(\n",
       "            (out_proj): NonDynamicallyQuantizableLinear(in_features=256, out_features=256, bias=True)\n",
       "          )\n",
       "          (multihead_attn): MultiheadAttention(\n",
       "            (out_proj): NonDynamicallyQuantizableLinear(in_features=256, out_features=256, bias=True)\n",
       "          )\n",
       "          (linear1): Linear(in_features=256, out_features=1024, bias=True)\n",
       "          (dropout): Dropout(p=0.0, inplace=False)\n",
       "          (linear2): Linear(in_features=1024, out_features=256, bias=True)\n",
       "          (norm1): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (norm2): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (norm3): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "          (dropout1): Dropout(p=0.0, inplace=False)\n",
       "          (dropout2): Dropout(p=0.0, inplace=False)\n",
       "          (dropout3): Dropout(p=0.0, inplace=False)\n",
       "        )\n",
       "      )\n",
       "      (norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)\n",
       "    )\n",
       "  )\n",
       "  (head): Linear(in_features=256, out_features=8, bias=True)\n",
       ")"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_TGTSF = model_init(config.model, config.model_config, config).to(config.device)\n",
    "# load the model\n",
    "model_TGTSF.load_state_dict(torch.load(os.path.join(ckpt_path, 'checkpoint.pth')))\n",
    "model_TGTSF.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ info ] Successfully load the dynamic data embedding from fast_general_formal_embeddings_????.pkl\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Loading test datasets: 100%|██████████| 9/9 [00:05<00:00,  1.72it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['314106', '319086', '164440', '355827', '331901', '332785', '577650', '551172', '570079'])\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "id_data = Data_Provider(config)\n",
    "fullsets = id_data.get_test('set')\n",
    "print(fullsets.keys())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fad8087f6d0>"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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m2++WV7hV1ZWhry8PLz++usYPXo0MjIy/GavevfujdzcXADOab6JEydi8uTJWLhwoVyPpdVq5UDvhRdeQG5uLoYOHYqmpiasXr0a+fn5+OSTT8Ix1KhnkwIqBwMqIiJfgiC0e9ot2n355Zf4+c9/DsA5S7Rnzx55RXxqaipqa2tRX1+PuLg4AGjRHsFgMMBut0f0nJUsbI09165di0GDBiEvLw9Tp07FpZde6rUKwWq1ori4uE27fb/99ts4deoU1qxZg8zMTPnr4osvlo9pbm7GokWLMGzYMFx++eXYt28ftm7diry8vE4dn1I4GFAREZ2TXn75Zbz33nv48ccfMW/ePJw9e1ZuPzRmzBjExsbiD3/4A0pKSrBu3boWq/hycnJQWlqKwsJCnD59GhaLpQtGoRxhC8tTUlKCNvHMyclpdYWD7/VLly7F0qVLg95m8eLFIRXcnStsrKEiIjonPfPMM3jmmWdQWFiI/v37Y8OGDejRowcA59/oNWvW4P7778c//vEP5OXlYenSpV6r5qdNm4Z3330XEyZMQHV1NV599dVW66jPZerMc5LMIbKGiohI6TwXZh05cqTF9f66mQ8ePDho78frrrsO1113nddls2bNkr83Go14++2323qq5yxujqxyUiDFKT8iIqLwYUClcnKGigEVERFR2HDKT+XYh4qI6NwSSo0ydT5mqFTOxj5UREREYceASuXYNoGIiCj8GFCpnLttAgMqIiKicGFApXLuonTWUBEREYULAyqVkzNUrKEiIiIKGwZUKscaKiIiovBjQKVy0lQfAyoiIqLwYUClcnZX6ZTNzhoqIiIlGz9+PBYsWNDVpyGLtvPpagyoVE5q6MlVfkRE1Nzc3NWnoFoMqFROqkXnlB8RkXLNnDkT27dvx4svvghBECAIAkpKSnDnnXciNzcXJpMJAwcOxIsvvtjidtdddx2efPJJZGVlYeDAgQCAL774AiNGjEBMTAxGjRqF999/H4IgeG2yvH//flx11VWIj49Heno6brvtNpw+fTrg+fjbtPlcwq1nVM7OGioiosBEEbA2dM1j62MBQQjp0BdffBEHDhzA+eefj8cffxwA0K1bN/Tq1Qv/+c9/0L17d3zxxReYPXs2MjMzceONN8q3/fTTT5GYmIgtW7YAAMxmM6655hpMnToV69atw9GjR1tM3VVXV2PixIm4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my2kMS5evFg8//zzvcZ46aWXygWG0hinTZsm306tY/R9HvV6vTh06NCoGmOg16k0Rs/X6S233CJOnjxZHt+aNWvE7777Tvzuu+/E9957T9TpdOKQIUNCXpWitOfwq6++EgVBECdOnBjS+JQyRs+idGnVXFZWVlSNsSOvU+k5fPTRR8Xu3bur8r3Gczz79+8X4+LixG7duqlqjJ6/izt37hQFQRCvvPLKqBtja4IVpfsuLhg7dmybitJVG1D9/ve/F5OSksRt27Z5LdtsaGiQj5kzZ47Yu3dvMT8/X/z666/FsWPHimPHjpWv/+6778TU1FTx1ltv9bqPyspK+ZgVK1aI77//vnjw4EHxu+++E++55x5Ro9GIW7duDXp+zzzzjJicnCz+97//Fb/99lvx2muv9Voeevz4cbF///5iXl6eePz4ca/HDzbGXbt2iSaTSbz//vvFoqIieQnssmXL5DGmp6fLt/vss8/E7t27i9OmTRMPHz6smjH27NlT3L59u1haWiq+8847YmxsrAhAfPPNN6NqjIFepz/88IMYGxsr3n///S2Wowd6naalpYl33XVXVI2vI89hZmamuG3bNrG0tFR84403RL1eLxqNRvG7775TzRiHDRsm6nQ68cknnxQ3bdokJiYmilqtVvzzn/8cVWPs6OvUbreLGRkZYmxsrOreT1NTU8WePXuKGzduFD/++GMxMTFRNBqN4ty5c1UzxsGDB4sfffSRePjwYfFvf/ubqNPpxO7du4vHjh2LujEGsnfvXnHv3r3iRRddJE6fPl3cu3ev+P3338vX79y5U9TpdOLy5cvFoqIi8dFHH2XbBAkAv1+vvvqqfExjY6M4d+5csVu3bmJsbKz4q1/9yuuJefTRR/3eR58+feRjli1bJvbr10+MiYkRU1JSxPHjx4v5+fmtnp/D4RAffvhhMT09XTQajWJeXp5YXFwsX//qq68GHENrY3zggQfEESNGiAaDQczJyREnTpzoNcZAt1PTGG+++WaxT58+osFgkIOpaBxjsNfpZ599Jo4YMULU6/ViYmKiGBcXd069Tn/5y1+KmZmZosFgEBMSElQ5xvLycvGDDz4Qzz//fFGr1UbtGDv6Ot28ebNq32sOHjwo3nPPPWLv3r2j+jnsyBj/9re/iX379hUNBoMYFxcX1WMMpLVzFkVRXL9+vXjeeeeJBoNBHDp0qLhp06ZW79eT4HogIiIiImon1RelExEREYUbAyoiIiKiDmJARURERNRBDKiIiIiIOogBFREREVEHMaAiIiIi6iAGVEREREQdxICKiIiIqIMYUBERERF1EAMqIiIiog5iQEVERETUQQyoiIiIiDro/wPOSUXgxMmDxQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_num = 27072\n",
    "batch_x, batch_y, timestamp_x, timestamp_y, batch_x_hetero, batch_y_hetero, hetero_x_time, hetero_y_time, hetero_general, hetero_channel = fullsets['332785'][sample_num]\n",
    "\n",
    "batch_x = torch.tensor(batch_x).unsqueeze(0).float().to(config.device)\n",
    "batch_y = torch.tensor(batch_y).unsqueeze(0).float().to(config.device)\n",
    "batch_y_hetero = torch.tensor(batch_y_hetero).unsqueeze(0).float().to(config.device)\n",
    "hetero_channel = torch.tensor(hetero_channel).unsqueeze(0).float().to(config.device)\n",
    "\n",
    "output_TST = model_TST(x=batch_x)\n",
    "output_TST = output_TST[:, -config.output_len:, :]\n",
    "\n",
    "output_TGTSF = model_TGTSF(x=batch_x, historical_events =batch_x_hetero, news = batch_y_hetero, dataset_description=hetero_general, channel_description=hetero_channel)\n",
    "output_TGTSF = output_TGTSF[:, -config.output_len:, :]\n",
    "\n",
    "\n",
    "\n",
    "indate = [str(i) for i in timestamp_x]\n",
    "outdate = [str(i) for i in timestamp_y]\n",
    "# convert the yyyymmddHHMMSS to datetime\n",
    "indate = pd.to_datetime(indate, format='%Y%m%d%H%M%S')\n",
    "outdate = pd.to_datetime(outdate, format='%Y%m%d%H%M%S')\n",
    "# reformat the indate as datetime\n",
    "# plot the result\n",
    "# enable inline plotting\n",
    "%matplotlib inline\n",
    "plt.plot(indate, batch_x.cpu().detach().numpy().squeeze(), label='input')\n",
    "plt.plot(outdate, batch_y.cpu().detach().numpy().squeeze(), label='target')\n",
    "plt.plot(outdate, output_TST.cpu().detach().numpy().squeeze(), label='PatchTST')\n",
    "plt.plot(outdate, output_TGTSF.cpu().detach().numpy().squeeze(), label='TGTSF')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "selectset = '332785'\n",
    "losslist = {}\n",
    "for sample_num in range(0, len(fullsets[selectset]), 24):\n",
    "    batch_x, batch_y, timestamp_x, timestamp_y, batch_x_hetero, batch_y_hetero, hetero_x_time, hetero_y_time, hetero_general, hetero_channel = fullsets[selectset][sample_num]\n",
    "\n",
    "    batch_x = torch.tensor(batch_x).unsqueeze(0).float().to(config.device)\n",
    "    batch_y = torch.tensor(batch_y).unsqueeze(0).float().to(config.device)\n",
    "    batch_y_hetero = torch.tensor(batch_y_hetero).unsqueeze(0).float().to(config.device)\n",
    "    hetero_channel = torch.tensor(hetero_channel).unsqueeze(0).float().to(config.device)\n",
    "\n",
    "    output_TST = model_TST(x=batch_x)\n",
    "    output_TST = output_TST[:, -config.output_len:, :]\n",
    "\n",
    "    output_TGTSF = model_TGTSF(x=batch_x, historical_events =batch_x_hetero, news = batch_y_hetero, dataset_description=hetero_general, channel_description=hetero_channel)\n",
    "    output_TGTSF = output_TGTSF[:, -config.output_len:, :]\n",
    "\n",
    "    # calculate the loss\n",
    "    loss_TST = torch.nn.MSELoss()(output_TST, batch_y)\n",
    "    loss_TGTSF = torch.nn.MSELoss()(output_TGTSF, batch_y)\n",
    "    loss_mutual = torch.nn.MSELoss()(output_TST, output_TGTSF)\n",
    "    losslist[sample_num] = {\n",
    "        'loss_TST': loss_TST.item(),\n",
    "        'loss_TGTSF': loss_TGTSF.item(),\n",
    "        'loss_mutual': loss_mutual.item(),\n",
    "    }\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_lossdf()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.microsoft.datawrangler.viewer.v0+json": {
       "columns": [
        {
         "name": "index",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "loss_TST",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "loss_TGTSF",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "loss_mutual",
         "rawType": "float64",
         "type": "float"
        }
       ],
       "conversionMethod": "pd.DataFrame",
       "ref": "7945815b-8318-4506-944c-cda267055684",
       "rows": [
        [
         "0",
         "1.3500429304258432e-05",
         "0.0017284166533499956",
         "0.0018544849008321762"
        ],
        [
         "24",
         "8.901091632651514e-07",
         "0.012687724083662033",
         "0.012616055086255074"
        ],
        [
         "48",
         "3.875038601108827e-06",
         "0.006960014812648296",
         "0.0069099292159080505"
        ],
        [
         "72",
         "0.13361792266368866",
         "0.09890007227659225",
         "0.0049551697447896"
        ],
        [
         "96",
         "0.004242763854563236",
         "0.15464988350868225",
         "0.1221584901213646"
        ],
        [
         "120",
         "0.09972846508026123",
         "0.03548208624124527",
         "0.04495128616690636"
        ],
        [
         "144",
         "0.16065384447574615",
         "0.1393071711063385",
         "0.010842184536159039"
        ],
        [
         "168",
         "0.14673477411270142",
         "0.037927448749542236",
         "0.06029171869158745"
        ],
        [
         "192",
         "0.1739080548286438",
         "0.08353488147258759",
         "0.05698660761117935"
        ],
        [
         "216",
         "0.35991692543029785",
         "0.21151801943778992",
         "0.04055608808994293"
        ],
        [
         "240",
         "0.18477892875671387",
         "0.011577369645237923",
         "0.1335737556219101"
        ],
        [
         "264",
         "0.13030526041984558",
         "0.2158413827419281",
         "0.029118001461029053"
        ],
        [
         "288",
         "0.07197441160678864",
         "0.020620957016944885",
         "0.04485970735549927"
        ],
        [
         "312",
         "0.23195861279964447",
         "0.09338753670454025",
         "0.06820186227560043"
        ],
        [
         "336",
         "0.13860368728637695",
         "0.09995967149734497",
         "0.05569108948111534"
        ],
        [
         "360",
         "0.09804686158895493",
         "0.013112761080265045",
         "0.1010689064860344"
        ],
        [
         "384",
         "0.07543137669563293",
         "0.17280666530132294",
         "0.28158506751060486"
        ],
        [
         "408",
         "0.06573773175477982",
         "0.10520695894956589",
         "0.02211839333176613"
        ],
        [
         "432",
         "0.05857996642589569",
         "0.19458451867103577",
         "0.13022060692310333"
        ],
        [
         "456",
         "0.3652389943599701",
         "0.08721940964460373",
         "0.20043566823005676"
        ],
        [
         "480",
         "0.0569077804684639",
         "0.06141364201903343",
         "0.04385638236999512"
        ],
        [
         "504",
         "0.12276472896337509",
         "0.1013876423239708",
         "0.0365469753742218"
        ],
        [
         "528",
         "0.07249493896961212",
         "0.05184274539351463",
         "0.05276481434702873"
        ],
        [
         "552",
         "0.04517078027129173",
         "0.06690463423728943",
         "0.03371544927358627"
        ],
        [
         "576",
         "0.18824705481529236",
         "0.007035539485514164",
         "0.14109459519386292"
        ],
        [
         "600",
         "0.05332396179437637",
         "0.002852081786841154",
         "0.06734509766101837"
        ],
        [
         "624",
         "0.030800536274909973",
         "0.120907723903656",
         "0.1685747504234314"
        ],
        [
         "648",
         "0.054094426333904266",
         "0.08951245993375778",
         "0.018207374960184097"
        ],
        [
         "672",
         "0.01744205877184868",
         "0.048944249749183655",
         "0.05606047064065933"
        ],
        [
         "696",
         "0.5138402581214905",
         "0.22147874534130096",
         "0.10198577493429184"
        ],
        [
         "720",
         "0.5897848606109619",
         "0.09025441855192184",
         "0.2946653962135315"
        ],
        [
         "744",
         "0.11722519993782043",
         "0.4240616261959076",
         "0.146351620554924"
        ],
        [
         "768",
         "0.39844489097595215",
         "0.023335393518209457",
         "0.43852120637893677"
        ],
        [
         "792",
         "0.06332060694694519",
         "0.10548339784145355",
         "0.060663383454084396"
        ],
        [
         "816",
         "0.4528041481971741",
         "0.0511794313788414",
         "0.24051015079021454"
        ],
        [
         "840",
         "0.13830897212028503",
         "0.0776592344045639",
         "0.1242230236530304"
        ],
        [
         "864",
         "0.1316288262605667",
         "0.09762725234031677",
         "0.07842641323804855"
        ],
        [
         "888",
         "0.3258320987224579",
         "0.06663449108600616",
         "0.20380178093910217"
        ],
        [
         "912",
         "0.13959038257598877",
         "0.054274752736091614",
         "0.2106562703847885"
        ],
        [
         "936",
         "0.2519904375076294",
         "0.6134347319602966",
         "0.09229046106338501"
        ],
        [
         "960",
         "0.29952704906463623",
         "0.14908984303474426",
         "0.191497802734375"
        ],
        [
         "984",
         "0.09170066565275192",
         "0.06574174761772156",
         "0.260723352432251"
        ],
        [
         "1008",
         "0.029612448066473007",
         "0.4956382215023041",
         "0.6266733407974243"
        ],
        [
         "1032",
         "0.16428889334201813",
         "0.0054189665243029594",
         "0.11537055671215057"
        ],
        [
         "1056",
         "0.05148591846227646",
         "0.001700101769529283",
         "0.0396990105509758"
        ],
        [
         "1080",
         "0.034403882920742035",
         "0.01952177658677101",
         "0.0038787664379924536"
        ],
        [
         "1104",
         "0.021109431982040405",
         "0.0020392052829265594",
         "0.012367000803351402"
        ],
        [
         "1128",
         "0.02627401612699032",
         "0.001688923453912139",
         "0.01685086265206337"
        ],
        [
         "1152",
         "0.025748318061232567",
         "0.031797539442777634",
         "0.0025771339423954487"
        ],
        [
         "1176",
         "0.6999897956848145",
         "0.4233071804046631",
         "0.046784382313489914"
        ]
       ],
       "shape": {
        "columns": 3,
        "rows": 1147
       }
      },
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loss_TST</th>\n",
       "      <th>loss_TGTSF</th>\n",
       "      <th>loss_mutual</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.350043e-05</td>\n",
       "      <td>0.001728</td>\n",
       "      <td>0.001854</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>8.901092e-07</td>\n",
       "      <td>0.012688</td>\n",
       "      <td>0.012616</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>3.875039e-06</td>\n",
       "      <td>0.006960</td>\n",
       "      <td>0.006910</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>1.336179e-01</td>\n",
       "      <td>0.098900</td>\n",
       "      <td>0.004955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>4.242764e-03</td>\n",
       "      <td>0.154650</td>\n",
       "      <td>0.122158</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27408</th>\n",
       "      <td>6.407602e-01</td>\n",
       "      <td>0.140657</td>\n",
       "      <td>0.247824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27432</th>\n",
       "      <td>3.873941e-01</td>\n",
       "      <td>0.127128</td>\n",
       "      <td>0.157481</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27456</th>\n",
       "      <td>2.623532e-01</td>\n",
       "      <td>0.075915</td>\n",
       "      <td>0.109401</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27480</th>\n",
       "      <td>1.857238e-01</td>\n",
       "      <td>0.053388</td>\n",
       "      <td>0.074093</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27504</th>\n",
       "      <td>1.439641e-01</td>\n",
       "      <td>0.081580</td>\n",
       "      <td>0.039639</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1147 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           loss_TST  loss_TGTSF  loss_mutual\n",
       "0      1.350043e-05    0.001728     0.001854\n",
       "24     8.901092e-07    0.012688     0.012616\n",
       "48     3.875039e-06    0.006960     0.006910\n",
       "72     1.336179e-01    0.098900     0.004955\n",
       "96     4.242764e-03    0.154650     0.122158\n",
       "...             ...         ...          ...\n",
       "27408  6.407602e-01    0.140657     0.247824\n",
       "27432  3.873941e-01    0.127128     0.157481\n",
       "27456  2.623532e-01    0.075915     0.109401\n",
       "27480  1.857238e-01    0.053388     0.074093\n",
       "27504  1.439641e-01    0.081580     0.039639\n",
       "\n",
       "[1147 rows x 3 columns]"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# convert to pandas df\n",
    "lossdf = pd.DataFrame(losslist).T\n",
    "lossdf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "# add a column to the df with the sample_num\n",
    "lossdf['loss_mutual'] = (lossdf.loss_TST-lossdf.loss_TGTSF)/lossdf.loss_TST"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.microsoft.datawrangler.viewer.v0+json": {
       "columns": [
        {
         "name": "index",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "loss_TST",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "loss_TGTSF",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "loss_mutual",
         "rawType": "float64",
         "type": "float"
        }
       ],
       "conversionMethod": "pd.DataFrame",
       "ref": "40a027e1-4dac-43da-91dd-8c2917176947",
       "rows": [
        [
         "9816",
         "0.31305378675460815",
         "0.0017446012934669852",
         "0.994427151603713"
        ],
        [
         "25080",
         "0.3024316132068634",
         "0.0019729281775653362",
         "0.9934764485873511"
        ],
        [
         "19296",
         "0.38111603260040283",
         "0.0032645221799612045",
         "0.9914343089749151"
        ],
        [
         "9840",
         "0.20882269740104675",
         "0.0018325985874980688",
         "0.9912241408127271"
        ],
        [
         "9096",
         "0.3442448377609253",
         "0.0033951555378735065",
         "0.9901373814057557"
        ],
        [
         "18192",
         "0.09844228625297546",
         "0.0009888834320008755",
         "0.9899546884815367"
        ],
        [
         "16752",
         "0.16300979256629944",
         "0.0016970771830528975",
         "0.9895891089956288"
        ],
        [
         "15696",
         "0.18725882470607758",
         "0.002036257181316614",
         "0.989125974786434"
        ],
        [
         "1320",
         "0.21445363759994507",
         "0.002374412026256323",
         "0.9889280869616878"
        ],
        [
         "6912",
         "0.2841304540634155",
         "0.0031758244149386883",
         "0.9888226539270237"
        ],
        [
         "6888",
         "0.5000218749046326",
         "0.005602353718131781",
         "0.9887957827461042"
        ],
        [
         "25776",
         "0.10225605964660645",
         "0.0011526739690452814",
         "0.9887275729865899"
        ],
        [
         "5448",
         "0.8795344829559326",
         "0.010077671147882938",
         "0.9885420397458279"
        ],
        [
         "26856",
         "0.367431640625",
         "0.004321695305407047",
         "0.9882380970292709"
        ],
        [
         "2256",
         "0.8710117340087891",
         "0.010351413860917091",
         "0.9881156436167913"
        ],
        [
         "18216",
         "0.0884709358215332",
         "0.0010667366441339254",
         "0.987942518814475"
        ],
        [
         "19320",
         "0.2645682692527771",
         "0.0032235169783234596",
         "0.9878159350422948"
        ],
        [
         "25104",
         "0.1357155740261078",
         "0.001674434868618846",
         "0.9876621759835998"
        ],
        [
         "26928",
         "0.10274439305067062",
         "0.0013292732182890177",
         "0.987062328378022"
        ],
        [
         "9864",
         "0.1251271665096283",
         "0.0017331000417470932",
         "0.9861492904371512"
        ],
        [
         "19272",
         "0.5694682598114014",
         "0.008003189228475094",
         "0.9859462066751085"
        ],
        [
         "7152",
         "0.19122210144996643",
         "0.0027403596322983503",
         "0.985669231686509"
        ],
        [
         "18168",
         "0.19596537947654724",
         "0.002855578437447548",
         "0.9854281483541878"
        ],
        [
         "10104",
         "0.42895591259002686",
         "0.00627221679314971",
         "0.9853779453574186"
        ],
        [
         "15672",
         "0.2148338407278061",
         "0.00315106357447803",
         "0.9853325548535418"
        ],
        [
         "14496",
         "0.5975459218025208",
         "0.008985975757241249",
         "0.9849618658091839"
        ],
        [
         "26088",
         "0.14699557423591614",
         "0.002413159469142556",
         "0.983583454932666"
        ],
        [
         "1296",
         "0.22782263159751892",
         "0.003771558403968811",
         "0.9834451986726596"
        ],
        [
         "18816",
         "0.20197533071041107",
         "0.0034128983970731497",
         "0.9831023997580848"
        ],
        [
         "25128",
         "0.08026457577943802",
         "0.001386057585477829",
         "0.9827313908780054"
        ],
        [
         "15408",
         "0.4337008595466614",
         "0.007526454981416464",
         "0.9826459763319729"
        ],
        [
         "9792",
         "0.5955685377120972",
         "0.010577762499451637",
         "0.9822392187806183"
        ],
        [
         "7944",
         "0.1852414458990097",
         "0.0033223177306354046",
         "0.9820649330687763"
        ],
        [
         "17400",
         "0.1892649233341217",
         "0.0034561629872769117",
         "0.981739019959998"
        ],
        [
         "9240",
         "0.08987368643283844",
         "0.0016762828454375267",
         "0.9813484579083089"
        ],
        [
         "26112",
         "0.07507872581481934",
         "0.0014015920460224152",
         "0.9813317017462521"
        ],
        [
         "8256",
         "0.06698479503393173",
         "0.0012647755211219192",
         "0.9811184684452459"
        ],
        [
         "15744",
         "0.09397416561841965",
         "0.0017901323735713959",
         "0.9809508032150006"
        ],
        [
         "25800",
         "0.05144509673118591",
         "0.0010750999208539724",
         "0.9791019943752531"
        ],
        [
         "18840",
         "0.16575229167938232",
         "0.003605720354244113",
         "0.9782463318141101"
        ],
        [
         "10128",
         "0.10837313532829285",
         "0.002404979895800352",
         "0.9778083388607796"
        ],
        [
         "18792",
         "0.6962219476699829",
         "0.01575031876564026",
         "0.9773774457723557"
        ],
        [
         "18144",
         "0.2691805064678192",
         "0.00620023999363184",
         "0.9769662369872497"
        ],
        [
         "9216",
         "0.19815373420715332",
         "0.004628985188901424",
         "0.9766394249019693"
        ],
        [
         "13608",
         "0.6446126699447632",
         "0.015216301195323467",
         "0.9763946600729593"
        ],
        [
         "21072",
         "0.8944333791732788",
         "0.021396588534116745",
         "0.9760780522816651"
        ],
        [
         "6096",
         "0.6987662315368652",
         "0.016877494752407074",
         "0.9758467224220513"
        ],
        [
         "23472",
         "0.61178058385849",
         "0.014802108518779278",
         "0.9758048736600586"
        ],
        [
         "18240",
         "0.06474025547504425",
         "0.0015709197614341974",
         "0.975735039197679"
        ],
        [
         "7968",
         "0.06645415723323822",
         "0.0016128381248563528",
         "0.9757300642727937"
        ]
       ],
       "shape": {
        "columns": 3,
        "rows": 1147
       }
      },
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loss_TST</th>\n",
       "      <th>loss_TGTSF</th>\n",
       "      <th>loss_mutual</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>9816</th>\n",
       "      <td>3.130538e-01</td>\n",
       "      <td>0.001745</td>\n",
       "      <td>0.994427</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25080</th>\n",
       "      <td>3.024316e-01</td>\n",
       "      <td>0.001973</td>\n",
       "      <td>0.993476</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19296</th>\n",
       "      <td>3.811160e-01</td>\n",
       "      <td>0.003265</td>\n",
       "      <td>0.991434</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9840</th>\n",
       "      <td>2.088227e-01</td>\n",
       "      <td>0.001833</td>\n",
       "      <td>0.991224</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9096</th>\n",
       "      <td>3.442448e-01</td>\n",
       "      <td>0.003395</td>\n",
       "      <td>0.990137</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25320</th>\n",
       "      <td>5.209364e-08</td>\n",
       "      <td>0.001750</td>\n",
       "      <td>-33596.385014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25368</th>\n",
       "      <td>5.209364e-08</td>\n",
       "      <td>0.001774</td>\n",
       "      <td>-34049.421053</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25344</th>\n",
       "      <td>5.209364e-08</td>\n",
       "      <td>0.001775</td>\n",
       "      <td>-34065.616155</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17832</th>\n",
       "      <td>4.125366e-08</td>\n",
       "      <td>0.001664</td>\n",
       "      <td>-40326.600541</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17856</th>\n",
       "      <td>3.467107e-08</td>\n",
       "      <td>0.001630</td>\n",
       "      <td>-47001.133435</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1147 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           loss_TST  loss_TGTSF   loss_mutual\n",
       "9816   3.130538e-01    0.001745      0.994427\n",
       "25080  3.024316e-01    0.001973      0.993476\n",
       "19296  3.811160e-01    0.003265      0.991434\n",
       "9840   2.088227e-01    0.001833      0.991224\n",
       "9096   3.442448e-01    0.003395      0.990137\n",
       "...             ...         ...           ...\n",
       "25320  5.209364e-08    0.001750 -33596.385014\n",
       "25368  5.209364e-08    0.001774 -34049.421053\n",
       "25344  5.209364e-08    0.001775 -34065.616155\n",
       "17832  4.125366e-08    0.001664 -40326.600541\n",
       "17856  3.467107e-08    0.001630 -47001.133435\n",
       "\n",
       "[1147 rows x 3 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# sort the df by loss_TST\n",
    "lossdf = lossdf.sort_values(by='loss_mutual', ascending=False)\n",
    "lossdf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "loss_TST         0.238918\n",
       "loss_TGTSF       0.151082\n",
       "loss_mutual   -394.026704\n",
       "dtype: float64"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# average loss\n",
    "lossdf.mean()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "165"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sum(lossdf.loss_mutual>0.9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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X3yh//3f/73g+D//+U/t37+f8QZQ0x47LqZz58766quv9P3335vHvvjiiwtWzWvRooUkVZsE1bQODw8Pubm5ucwoHTx4UGvWrKmDnoClvFEj7du3V2JiombPnq3hw4frgQceUEFBgRYtWqTbb7/dfMjipk2bFB8fr4cffli33nqrzpw5o//+7/+Wh4eHYmJiJElz5szR1q1bFR0drZCQEB09elSLFi1Sx44ddffdd9d52x988EGFhobq/vvvV+fOnXXy5Elt3LhRH3zwgW6//Xbdf//9df6ewI2gKY8LVZfXTp48WbfccotGjx6tbt26qby8XP/zP/+j5cuXy2KxKDAwsFb1ZmVl6fnnn9cDDzygAQMGqFWrVvr222/15ptvqqyszHyeCXAja8pjx8WMGzdOL7/8sux2u2JjY3X06FGlpaWpR48e5iIw0s+XAYaFhemdd97RrbfeKj8/P/Xs2VM9e/ascR3R0dF6+eWXNXz4cD322GM6evSoUlNT1aVLF+3evbve+nzdasil8tC4nbvsZpWFCxca3bp1M5o3b24EBAQYkyZNMo4fP26Wf/vtt8a4ceOMzp07G15eXoafn58xePBgY+PGjWZMdna28eCDDxpBQUGGxWIxgoKCjEcffdT4n//5nytu66WW8n777beNUaNGGZ07dza8vb0NLy8vIywszPjd735nOJ3Oal/DUt5A9a6XcaHKrl27jCeeeMLo1KmTYbFYjJYtWxq9e/c2nn32WePAgQPVvuZSS3l/++23RlJSkjFgwADD39/faNasmdG+fXsjOjra2LRpk0ts1VLedbl8OdBYNfaxIyQkxIiOjr7guCQjLi7O5VhhYaEhyXjxxRddjv/1r381br75ZsNisRh9+/Y1MjMzq12Ge/v27UZ4eLhhsVguWNa7pnUsWbLEuOWWWwxPT0+jW7duxtKlS80x5fx+sZR37bgZBnduAQAAAAD3HAEAAACAuOcIjdD3339/yaUvLRaL/Pz86rFFABoa4wKAK8HYgdrisjo0OjfddNMFy1ae65577tHmzZvrr0EAGhzjAoArwdiB2mLmCI3O8uXLderUqYuWt2nTph5bA6AxYFwAcCUYO1BbzBwBAAAAgFiQAQAAAAAkXceX1VVWVurw4cNq3bq13NzcGro5wA3NMAz9+OOPCgoKkrt70/ibDGMI0Hg0xTFEYhwB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2qUePXpIksaPH685c+aYr2nRooX577Nnzyo6OlqBgYHavn27jhw5oieeeELNmzfXn/70J0lSYWGhoqOjNXHiRC1fvlzZ2dl6+umn1aFDB9nt9rro8wVuem7tNakXAAAAQNNRq+To/vvvd9n/4x//qMWLFys3N9dMjlq0aKHAwMBqX79hwwbt379fGzduVEBAgPr27au5c+dqxowZmjVrliwWi9LS0hQaGqr58+dLkrp3765t27YpJSXlmiVHAAAAAHDF9xydPXtWK1eu1MmTJ2Wz2czjy5cvV7t27dSzZ08lJibqp59+MstycnLUq1cvBQQEmMfsdrucTqf27dtnxkRFRbm8l91uV05OziXbU1ZWJqfT6bIBAAAAQE3VauZIkvbs2SObzabTp0+rVatWeu+99xQWFiZJeuyxxxQSEqKgoCDt3r1bM2bMUEFBgd59911JksPhcEmMJJn7DofjkjFOp1OnTp2St7d3te1KTk7W7Nmza9sdAAAAAJB0BclR165dlZ+fr9LSUv3tb3/T2LFjtWXLFoWFhWnChAlmXK9evdShQwcNHTpU33zzjTp37lynDT9fYmKiEhISzH2n06ng4OBr+p4AAAAArh+1vqzOYrGoS5cuCg8PV3Jysvr06aMFCxZUGxsRESFJOnDggCQpMDBQxcXFLjFV+1X3KV0sxmq1XnTWSJI8PT3NVfSqNgAAAACoqat+zlFlZaXKysqqLcvPz5ckdejQQZJks9m0Z88eHT161IzJysqS1Wo1L82z2WzKzs52qScrK8vlviYAAAAAqGu1So4SExO1detWHTx4UHv27FFiYqI2b96s0aNH65tvvtHcuXOVl5engwcP6h//+IeeeOIJDRo0SL1795YkDRs2TGFhYRozZoy++OILZWZmaubMmYqLi5Onp6ckaeLEifr22281ffp0ffXVV1q0aJFWrVqlqVOn1n3vATSIf/3rX3r88cfVtm1beXt7q1evXvrss8/McsMwlJSUpA4dOsjb21tRUVH6+uuvXeo4duyYRo8eLavVKl9fX8XGxurEiRMuMbt379bAgQPl5eWl4OBgzZs3r176BwAAmqZa3XN09OhRPfHEEzpy5Ih8fHzUu3dvZWZm6pe//KUOHTqkjRs36pVXXtHJkycVHBysmJgYzZw503y9h4eHMjIyNGnSJNlsNrVs2VJjx451eS5SaGio1q5dq6lTp2rBggXq2LGj3njjjUa3jPf5z0Y6+EJ0A7UEaFqOHz+uu+66S4MHD9aHH36o9u3b6+uvv1abNm3MmHnz5unVV1/VsmXLFBoaqt///vey2+3av3+/vLy8JEmjR4/WkSNHlJWVpYqKCj311FOaMGGCVqxYIenn+w6HDRumqKgopaWlac+ePRo3bpx8fX1d7o8EAACoUqvkaMmSJRctCw4O1pYtWy5bR0hIiNatW3fJmMjISO3atas2TQPQRPzXf/2XgoODtXTpUvNYaGio+W/DMPTKK69o5syZevDBByVJb731lgICArRmzRqNGjVKX375pdavX6+dO3eqf//+kqTXXntN9957r1566SUFBQVp+fLlKi8v15tvvimLxaIePXooPz9fL7/8MskRAACo1lXfcwQAtfGPf/xD/fv318MPPyx/f3/ddttt+stf/mKWFxYWyuFwuDzvzMfHRxEREebzznJycuTr62smRpIUFRUld3d37dixw4wZNGiQLBaLGWO321VQUKDjx49f624CAIAmiOQIQL369ttvtXjxYt1yyy3KzMzUpEmT9B//8R9atmyZpP975ll1zzs793lo/v7+LuXNmjWTn5/fZZ+Zdu57nIsHSQMAgFo/5wgArkZlZaX69++vP/3pT5Kk2267TXv37lVaWprGjh3bYO3iQdIAAICZIwD1qkOHDubS/VW6d++uoqIiSf/3zLPqnnd27vPQzn0kgCSdOXNGx44du+wz0859j3MlJiaqtLTU3A4dOnSlXQQAAE0UyRGAenXXXXepoKDA5dj//M//KCQkRNLPizMEBga6PO/M6XRqx44d5vPObDabSkpKlJeXZ8Zs2rRJlZWV5sOnbTabtm7dqoqKCjMmKytLXbt2dVkZrwoPkgYAACRHAOrV1KlTlZubqz/96U86cOCAVqxYoddff11xcXGSJDc3N02ZMkV/+MMf9I9//EN79uzRE088oaCgII0cOVLSzzNNw4cP1/jx4/Xpp5/qk08+UXx8vEaNGqWgoCBJ0mOPPSaLxaLY2Fjt27dP77zzjhYsWKCEhISG6joAAGjkuOcIQL26/fbb9d577ykxMVFz5sxRaGioXnnlFY0ePdqMmT59uk6ePKkJEyaopKREd999t9avX28+40iSli9frvj4eA0dOlTu7u6KiYnRq6++apb7+Phow4YNiouLU3h4uNq1a6ekpCSW8QYAABdFcgSg3t1333267777Llru5uamOXPmuDwg+nx+fn7mA18vpnfv3vr444+vuJ0AAODGwmV1AAAAACCSIwAAAACQRHIEAAAAAJJIjgAAAABAEskRAAAAAEgiOQIAAAAASSRHAAAAACCJ5AgAAAAAJJEcAQAAAIAkkiMAAAAAkERyBAAAAACSSI4AAEAjkZycrNtvv12tW7eWv7+/Ro4cqYKCApeY06dPKy4uTm3btlWrVq0UExOj4uJil5iioiJFR0erRYsW8vf317Rp03TmzBmXmM2bN6tfv37y9PRUly5dlJ6efkF7UlNTddNNN8nLy0sRERH69NNP67zPABoXkiMAANAobNmyRXFxccrNzVVWVpYqKio0bNgwnTx50oyZOnWqPvjgA61evVpbtmzR4cOH9dBDD5nlZ8+eVXR0tMrLy7V9+3YtW7ZM6enpSkpKMmMKCwsVHR2twYMHKz8/X1OmTNHTTz+tzMxMM+add95RQkKCnn/+eX3++efq06eP7Ha7jh49Wj8nA0CDaNbQDQAAAJCk9evXu+ynp6fL399f+fn5kqTS0lItWbJEK1as0JAhQyRJS5cuVffu3ZWbm6sBAwZow4YN2r9/vzZu3KiAgAD17dtXc+fO1YwZMzRr1ixZLBalpaUpNDRU8+fPlyR1795d27ZtU0pKiux2uyTp5Zdf1vjx4/XUU09JktLS0rR27Vq9+eabeu655+rpjACob8wcAQCARqm0tFSS1KZNG0lSfn6+KioqFBUVZcZ069ZNnTp1Uk5OjiQpJydHvXr1UkBAgBljt9vldDq1b98+M+bcOqpiquooLy9XXl6eS4y7u7uioqLMGADXJ2aOAABAo1NZWakpU6borrvuUlhYmCTp6NGjslgs8vX1dYkNCAiQw+GQJDkcDpfEqKq8quxSMU6nU6dOndLx48d19uzZamO++uqri7a5rKxMZWVl5r7T6axFjwE0BswcAQCARicuLk579+7VypUrG7opNZacnCwfHx9zCw4ObugmAaglkiMAANCoxMfHKyMjQx999JE6duxoHvf391d5eblKSkpc4ouLixUYGChJCgwMvGD1uqr9y8VYrVZ5e3urXbt28vDwqDamqo7qJCYmqrS01NwOHTpUu44DaHAkRwAAoFEwDEPx8fF67733tGnTJoWGhrqU9+3bV82bN1d2drZ5rKCgQEVFRbLZbJIkm82mPXv2uKwql5WVJavVal6eZ7PZXOqoiqmqw2KxKDw83CWmsrJS2dnZZkx1PD09ZbVaXTYATQv3HAEAgEYhLi5OK1as0Pvvv6/WrVub9wi5ublJknx8fBQbG6uEhAT5+fnJarVq8uTJstlsGjBggCRp2LBhCgsL05gxYzRv3jw5HA7NnDlTcXFx8vT0lCRNnDhRCxcu1PTp0zVu3Dht2rRJq1at0tq1a822JCQkaOzYserfv7/uuOMOvfLKKzp58qS5eh2A6xPJEQAAaBQWL14sSYqMjHQ5vmjRIvPfKSkpcnd3V0xMjMrKymS3213KPTw8lJGRoUmTJslms6lly5YaO3as5syZY8aEhoZq7dq1mjp1qhYsWKCOHTvqjTfeMJfxlqRHHnlE33//vZKSkuRwONS3b1+tX7/+gkUaAFxfSI4AAECjYBhGtcedTqd+85vfSJK8vLyUmpqq1NTUi9YTEhKidevWXfK9IiMjtWvXrkvGxMfHKz4+/jKtBnA94Z4jAAAAABDJEQAAAABIqmVytHjxYvXu3dtcgcVms+nDDz80y0+fPq24uDi1bdtWrVq1UkxMzAXLYBYVFSk6OlotWrSQv7+/pk2bpjNnzrjEbN68Wf369ZOnp6e6dOmi9PT0K+8hAAAAANRArZKjjh076oUXXlBeXp4+++wzDRkyRA8++KD27dsnSZo6dao++OADrV69Wlu2bNHhw4f10EMPma8/e/asoqOjVV5eru3bt2vZsmVKT09XUlKSGVNYWKjo6GgNHjxY+fn5mjJlip5++mllZmbWUZcBAAAA4EK1WpDh/vvvd9n/4x//qMWLFys3N1cdO3bUkiVLtGLFCg0ZMkSStHTpUnXv3l25ubkaMGCANmzYoP3792vjxo0KCAhQ3759NXfuXM2YMUOzZs2SxWJRWlqaQkNDNX/+fElS9+7dtW3bNqWkpLisIgMAAAAAdemK7zk6e/asVq5cqZMnT8pmsykvL08VFRWKiooyY7p166ZOnTopJydHkpSTk6NevXq5LINpt9vldDrN2aecnByXOqpiquq4mLKyMjmdTpcNAAAAAGqq1snRnj171KpVK3l6emrixIl67733FBYWJofDIYvFIl9fX5f4gIAA8yFuDofjgucDVO1fLsbpdOrUqVMXbVdycrJ8fHzMLTg4uLZdAwAAAHADq3Vy1LVrV+Xn52vHjh2aNGmSxo4dq/3791+LttVKYmKiSktLze3QoUMN3SQAAAAATUitHwJrsVjUpUsXSVJ4eLh27typBQsW6JFHHlF5eblKSkpcZo+Ki4sVGBgoSQoMDNSnn37qUl/Vanbnxpy/wl1xcbGsVqu8vb0v2i5PT095enrWtjsAAAAAIKkOnnNUWVmpsrIyhYeHq3nz5srOzjbLCgoKVFRUJJvNJkmy2Wzas2ePjh49asZkZWXJarUqLCzMjDm3jqqYqjoAAAAA4Fqo1cxRYmKiRowYoU6dOunHH3/UihUrtHnzZmVmZsrHx0exsbFKSEiQn5+frFarJk+eLJvNpgEDBkiShg0bprCwMI0ZM0bz5s2Tw+HQzJkzFRcXZ876TJw4UQsXLtT06dM1btw4bdq0SatWrdLatWvrvvcAAAAA8P/VKjk6evSonnjiCR05ckQ+Pj7q3bu3MjMz9ctf/lKSlJKSInd3d8XExKisrEx2u12LFi0yX+/h4aGMjAxNmjRJNptNLVu21NixYzVnzhwzJjQ0VGvXrtXUqVO1YMECdezYUW+88QbLeAMAAAC4pmqVHC1ZsuSS5V5eXkpNTVVqaupFY0JCQrRu3bpL1hMZGaldu3bVpmkAAAAAcFWu+p4jAAAAALgekBwBAAAAgEiOAAAAAEASyRGAejZr1iy5ubm5bN26dTPLT58+rbi4OLVt21atWrVSTEzMBc8+KyoqUnR0tFq0aCF/f39NmzZNZ86ccYnZvHmz+vXrJ09PT3Xp0kXp6en10T0AANCEkRwBqHc9evTQkSNHzG3btm1m2dSpU/XBBx9o9erV2rJliw4fPqyHHnrILD979qyio6NVXl6u7du3a9myZUpPT1dSUpIZU1hYqOjoaA0ePFj5+fmaMmWKnn76aWVmZtZrPwEAQNNSq9XqAKAuNGvWTIGBgRccLy0t1ZIlS7RixQoNGTJEkrR06VJ1795dubm5GjBggDZs2KD9+/dr48aNCggIUN++fTV37lzNmDFDs2bNksViUVpamkJDQzV//nxJUvfu3bVt2zalpKTwWAAAAHBRzBwBqHdff/21goKCdPPNN2v06NEqKiqSJOXl5amiokJRUVFmbLdu3dSpUyfl5ORIknJyctSrVy8FBASYMXa7XU6nU/v27TNjzq2jKqaqjuqUlZXJ6XS6bAAA4MZCcgSgXkVERCg9PV3r16/X4sWLVVhYqIEDB+rHH3+Uw+GQxWKRr6+vy2sCAgLkcDgkSQ6HwyUxqiqvKrtUjNPp1KlTp6ptV3Jysnx8fMwtODi4LroLAACaEC6rA1CvRowYYf67d+/eioiIUEhIiFatWiVvb+8Ga1diYqISEhLMfafTSYIEAMANhpkjAA3K19dXt956qw4cOKDAwECVl5erpKTEJaa4uNi8RykwMPCC1euq9i8XY7VaL5qAeXp6ymq1umwAAODGQnIEoEGdOHFC33zzjTp06KDw8HA1b95c2dnZZnlBQYGKiopks9kkSTabTXv27NHRo0fNmKysLFmtVoWFhZkx59ZRFVNVBwAAQHVIjgDUq//8z//Uli1bdPDgQW3fvl2/+tWv5OHhoUcffVQ+Pj6KjY1VQkKCPvroI+Xl5empp56SzWbTgAEDJEnDhg1TWFiYxowZoy+++EKZmZmaOXOm4uLi5OnpKUmaOHGivv32W02fPl1fffWVFi1apFWrVmnq1KkN2XUAANDIcc8RgHr13Xff6dFHH9UPP/yg9u3b6+6771Zubq7at28vSUpJSZG7u7tiYmJUVlYmu92uRYsWma/38PBQRkaGJk2aJJvNppYtW2rs2LGaM2eOGRMaGqq1a9dq6tSpWrBggTp27Kg33niDZbwBAMAlkRwBqFcrV668ZLmXl5dSU1OVmpp60ZiQkBCtW7fukvVERkZq165dV9RGAABwY+KyOgAAAAAQyREAAAAASCI5AgAAAABJJEcAAAAAIInkCAAAAAAkkRwBAAAAgCSW8q4zNz231mX/4AvRDdQSAAAAAFeCmSMAAAAAEMkRAAAAAEgiOQIAAAAASSRHAAAAACCJ5AgAAAAAJJEcAQAAAIAkkiMAAAAAkERyBAAAAACSSI4AAAAAQBLJEQAAAABIIjkCAAAAAEm1TI6Sk5N1++23q3Xr1vL399fIkSNVUFDgEhMZGSk3NzeXbeLEiS4xRUVFio6OVosWLeTv769p06bpzJkzLjGbN29Wv3795OnpqS5duig9Pf3KeggAAAAANVCr5GjLli2Ki4tTbm6usrKyVFFRoWHDhunkyZMucePHj9eRI0fMbd68eWbZ2bNnFR0drfLycm3fvl3Lli1Tenq6kpKSzJjCwkJFR0dr8ODBys/P15QpU/T0008rMzPzKrsLAAAAANVrVpvg9evXu+ynp6fL399feXl5GjRokHm8RYsWCgwMrLaODRs2aP/+/dq4caMCAgLUt29fzZ07VzNmzNCsWbNksViUlpam0NBQzZ8/X5LUvXt3bdu2TSkpKbLb7bXtIwAAAABc1lXdc1RaWipJ8vPzczm+fPlytWvXTj179lRiYqJ++uknsywnJ0e9evVSQECAecxut8vpdGrfvn1mTFRUlEuddrtdOTk5F21LWVmZnE6nywYAAAAANVWrmaNzVVZWasqUKbrrrrvUs2dP8/hjjz2mkJAQBQUFaffu3ZoxY4YKCgr07rvvSpIcDodLYiTJ3Hc4HJeMcTqdOnXqlLy9vS9oT3JysmbPnn2l3QEAAABwg7vi5CguLk579+7Vtm3bXI5PmDDB/HevXr3UoUMHDR06VN988406d+585S29jMTERCUkJJj7TqdTwcHB1+z9AAAAAFxfruiyuvj4eGVkZOijjz5Sx44dLxkbEREhSTpw4IAkKTAwUMXFxS4xVftV9yldLMZqtVY7ayRJnp6eslqtLhsAAAAA1FStkiPDMBQfH6/33ntPmzZtUmho6GVfk5+fL0nq0KGDJMlms2nPnj06evSoGZOVlSWr1aqwsDAzJjs726WerKws2Wy22jQXAAAAAGqsVslRXFyc/vrXv2rFihVq3bq1HA6HHA6HTp06JUn65ptvNHfuXOXl5engwYP6xz/+oSeeeEKDBg1S7969JUnDhg1TWFiYxowZoy+++EKZmZmaOXOm4uLi5OnpKUmaOHGivv32W02fPl1fffWVFi1apFWrVmnq1Kl13H0AAAAA+FmtkqPFixertLRUkZGR6tChg7m98847kiSLxaKNGzdq2LBh6tatm5599lnFxMTogw8+MOvw8PBQRkaGPDw8ZLPZ9Pjjj+uJJ57QnDlzzJjQ0FCtXbtWWVlZ6tOnj+bPn6833niDZbwBAAAAXDO1WpDBMIxLlgcHB2vLli2XrSckJETr1q27ZExkZKR27dpVm+YBAAAAwBW7quccAQAAAMD1guQIAAA0Glu3btX999+voKAgubm5ac2aNS7lTz75pNzc3Fy24cOHu8QcO3ZMo0ePltVqla+vr2JjY3XixAmXmN27d2vgwIHy8vJScHCw5s2bd0FbVq9erW7dusnLy0u9evW67FUvAJo+kiMAANBonDx5Un369FFqaupFY4YPH64jR46Y29tvv+1SPnr0aO3bt09ZWVnKyMjQ1q1bXZ7D6HQ6NWzYMIWEhCgvL08vvviiZs2apddff92M2b59ux599FHFxsZq165dGjlypEaOHKm9e/fWfacBNBpX/BBYAACAujZixAiNGDHikjGenp7msxHP9+WXX2r9+vXauXOn+vfvL0l67bXXdO+99+qll15SUFCQli9frvLycr355puyWCzq0aOH8vPz9fLLL5tJ1IIFCzR8+HBNmzZNkjR37lxlZWVp4cKFSktLq8MeA2hMmDkCAABNyubNm+Xv76+uXbtq0qRJ+uGHH8yynJwc+fr6momRJEVFRcnd3V07duwwYwYNGiSLxWLG2O12FRQU6Pjx42ZMVFSUy/va7Xbl5ORctF1lZWVyOp0uG4CmheQIAAA0GcOHD9dbb72l7Oxs/dd//Ze2bNmiESNG6OzZs5Ikh8Mhf39/l9c0a9ZMfn5+cjgcZkxAQIBLTNX+5WKqyquTnJwsHx8fcwsODr66zgKod1xWBwAAmoxRo0aZ/+7Vq5d69+6tzp07a/PmzRo6dGgDtkxKTExUQkKCue90OkmQgCaGmSMAANBk3XzzzWrXrp0OHDggSQoMDNTRo0ddYs6cOaNjx46Z9ykFBgaquLjYJaZq/3IxF7vXSfr5Xiir1eqyAWhaSI4A4Bq46bm1LhuAa+O7777TDz/8oA4dOkiSbDabSkpKlJeXZ8Zs2rRJlZWVioiIMGO2bt2qiooKMyYrK0tdu3ZVmzZtzJjs7GyX98rKypLNZrvWXQLQgEiOADSYF154QW5ubpoyZYp57PTp04qLi1Pbtm3VqlUrxcTEXPDX26KiIkVHR6tFixby9/fXtGnTdObMGZeYzZs3q1+/fvL09FSXLl2Unp5eDz0CcLVOnDih/Px85efnS5IKCwu1e/dus2zatGnKzc3VwYMHlZ2drQcffFBdunSR3W6XJHXv3l3Dhw/X+PHj9emnn+qTTz5RfHy8Ro0apaCgIEnSY489JovFotjYWO3bt0/vvPOOFixY4HJJ3DPPPKP169dr/vz5+uqrrzRr1ix99tlnio+Pr98TAqBekRwBaBA7d+7Un//8Z/Xu3dvl+NSpU/XBBx9o9erV2rJliw4fPqyHHnrILD979qyio6NVXl6u7du3a9myZUpPT1dSUpIZU1hYqOjoaA0ePFj5+fmaMmWKnn76aWVmZtZb/wBcmc8++0y33XabbrvtNklSQkKCBg4cKEny8PDQ7t279cADD+jWW29VbGyswsPD9fHHH8vT09OsY/ny5erWrZuGDh2qe++9V3fffbfLM4x8fHy0YcMGFRYWKjw8XM8++6ySkpJcnoV05513asWKFXr99dfVp08f/e1vf9OaNWvUs2fPejoTABqCm2EYRkM34lpwOp3y8fFRaWnpZa/5vRaXvBx8IbrO6wSaqvO/jydOnFC/fv20aNEi/eEPf1Dfvn31yiuvqLS0VO3bt9eKFSv0b//2b5Kkr776St27d1dOTo4GDBigDz/8UPfdd58OHz5sriSVlpamGTNm6Pvvv5fFYtGMGTO0du1al4c1jho1SiUlJVq/fv0VtflyLjeOMCYAV66238fGoqm2G2jMzv95W9OfrzX9PjJzBKDexcXFKTo6+oJniOTl5amiosLleLdu3dSpUyfz2SI5OTnq1auXyxK7drtdTqdT+/btM2N4PgkAAKgtlvIGUK9Wrlypzz//XDt37rygzOFwyGKxyNfX1+X4uc8WuZrnkzidTp06dUre3t4XvHdycrJmz559xf0CAABNHzNHAOrNd999p2eeeUbLly+Xl5dXQzfHRWJiokpLS83t0KFDDd0kAABQz0iOANSb/Px8HT16VP369VOzZs3UrFkzbdmyRa+++qqaNWumgIAAlZeXq6SkxOV15z5b5GqeT2K1WqudNZJ4PgkAACA5AlCP7rnnHu3Zs8dcpjc/P1/9+/fX6NGjzX83b97c5dkiBQUFKioqMp8tYrPZtGfPHpeHPGZlZclqtSosLMyM4fkkAACgtrjnCEC9ad26tX7xi1+4HGvZsqXatm1rLo8bGxurhIQE+fn5yWq1avLkybLZbBowYIAkadiwYQoLC9OYMWM0b948ORwOzZw5U3FxceZSvhMnTtTChQs1ffp0jRs3Tps2bdKqVau0di0PYwUAABdHcgSgUUlJSZG7u7tiYmJUVlYmu92uRYsWmeUeHh7KyMjQpEmTZLPZ1LJlS40dO1Zz5swxY0JDQ7V27VpNnTpVCxYsUMeOHfXGG2+YD4kEAACoDskRgAa1efNml30vLy+lpqYqNTX1oq8JCQnRunXrLllvZGSkdu3aVRdNBAAANwjuOQIAAAAAkRwBAAAAgCSSIwAAAACQRHIEAAAAAJJIjgAAAABAEskRAAAAAEgiOQIAAAAASSRHAAAAACCJ5AgAAAAAJJEcAQAAAIAkkiMAAAAAkERyBAAAAACSapkcJScn6/bbb1fr1q3l7++vkSNHqqCgwCXm9OnTiouLU9u2bdWqVSvFxMSouLjYJaaoqEjR0dFq0aKF/P39NW3aNJ05c8YlZvPmzerXr588PT3VpUsXpaenX1kPAQAAAKAGapUcbdmyRXFxccrNzVVWVpYqKio0bNgwnTx50oyZOnWqPvjgA61evVpbtmzR4cOH9dBDD5nlZ8+eVXR0tMrLy7V9+3YtW7ZM6enpSkpKMmMKCwsVHR2twYMHKz8/X1OmTNHTTz+tzMzMOugyAAAAAFyoWW2C169f77Kfnp4uf39/5eXladCgQSotLdWSJUu0YsUKDRkyRJK0dOlSde/eXbm5uRowYIA2bNig/fv3a+PGjQoICFDfvn01d+5czZgxQ7NmzZLFYlFaWppCQ0M1f/58SVL37t21bds2paSkyG6311HXAQAAAOD/XNU9R6WlpZIkPz8/SVJeXp4qKioUFRVlxnTr1k2dOnVSTk6OJCknJ0e9evVSQECAGWO32+V0OrVv3z4z5tw6qmKq6qhOWVmZnE6nywYAAAAANXXFyVFlZaWmTJmiu+66Sz179pQkORwOWSwW+fr6usQGBATI4XCYMecmRlXlVWWXinE6nTp16lS17UlOTpaPj4+5BQcHX2nXAAAAANyArjg5iouL0969e7Vy5cq6bM8VS0xMVGlpqbkdOnSooZsEAAAAoAmp1T1HVeLj45WRkaGtW7eqY8eO5vHAwECVl5erpKTEZfaouLhYgYGBZsynn37qUl/Vanbnxpy/wl1xcbGsVqu8vb2rbZOnp6c8PT2vpDsAAAAAULuZI8MwFB8fr/fee0+bNm1SaGioS3l4eLiaN2+u7Oxs81hBQYGKiopks9kkSTabTXv27NHRo0fNmKysLFmtVoWFhZkx59ZRFVNVBwAAAADUtVrNHMXFxWnFihV6//331bp1a/MeIR8fH3l7e8vHx0exsbFKSEiQn5+frFarJk+eLJvNpgEDBkiShg0bprCwMI0ZM0bz5s2Tw+HQzJkzFRcXZ878TJw4UQsXLtT06dM1btw4bdq0SatWrdLatWvruPsAUD9ues51/Dr4QnQDtQQAAFxMrWaOFi9erNLSUkVGRqpDhw7m9s4775gxKSkpuu+++xQTE6NBgwYpMDBQ7777rlnu4eGhjIwMeXh4yGaz6fHHH9cTTzyhOXPmmDGhoaFau3atsrKy1KdPH82fP19vvPEGy3gDAAAAuGZqNXNkGMZlY7y8vJSamqrU1NSLxoSEhGjdunWXrCcyMlK7du2qTfMaFf5KDAAAADQtV/WcIwAAAAC4XpAcAQAAAIBIjgAAAABAEskRAAAAAEgiOQIAAAAASSRHAAAAACCJ5AgAAAAAJJEcAQAAAIAkkiMAAAAAkERyBAAAAACSSI4AAAAAQBLJEQAAAABIIjkCAAAAAEkkRwAAAAAgieQIQD1bvHixevfuLavVKqvVKpvNpg8//NAsP336tOLi4tS2bVu1atVKMTExKi4udqmjqKhI0dHRatGihfz9/TVt2jSdOXPGJWbz5s3q16+fPD091aVLF6Wnp9dH9wAAQBNGcgSgXnXs2FEvvPCC8vLy9Nlnn2nIkCF68MEHtW/fPknS1KlT9cEHH2j16tXasmWLDh8+rIceesh8/dmzZxUdHa3y8nJt375dy5YtU3p6upKSksyYwsJCRUdHa/DgwcrPz9eUKVP09NNPKzMzs977CwAAmo5mDd0AADeW+++/32X/j3/8oxYvXqzc3Fx17NhRS5Ys0YoVKzRkyBBJ0tKlS9W9e3fl5uZqwIAB2rBhg/bv36+NGzcqICBAffv21dy5czVjxgzNmjVLFotFaWlpCg0N1fz58yVJ3bt317Zt25SSkiK73V7vfQYAAE0DM0cAGszZs2e1cuVKnTx5UjabTXl5eaqoqFBUVJQZ061bN3Xq1Ek5OTmSpJycHPXq1UsBAQFmjN1ul9PpNGefcnJyXOqoiqmqAwAAoDrMHAGod3v27JHNZtPp06fVqlUrvffeewoLC1N+fr4sFot8fX1d4gMCAuRwOCRJDofDJTGqKq8qu1SM0+nUqVOn5O3tfUGbysrKVFZWZu47nc6r7icAAGhamDkCUO+6du2q/Px87dixQ5MmTdLYsWO1f//+Bm1TcnKyfHx8zC04OLhB2wMAAOofyRGAemexWNSlSxeFh4crOTlZffr00YIFCxQYGKjy8nKVlJS4xBcXFyswMFCSFBgYeMHqdVX7l4uxWq3VzhpJUmJiokpLS83t0KFDddFVAADQhJAcAWhwlZWVKisrU3h4uJo3b67s7GyzrKCgQEVFRbLZbJIkm82mPXv26OjRo2ZMVlaWrFarwsLCzJhz66iKqaqjOp6enuby4lUbAAC4sXDPEYB6lZiYqBEjRqhTp0768ccftWLFCm3evFmZmZny8fFRbGysEhIS5OfnJ6vVqsmTJ8tms2nAgAGSpGHDhiksLExjxozRvHnz5HA4NHPmTMXFxcnT01OSNHHiRC1cuFDTp0/XuHHjtGnTJq1atUpr165tyK4DAIBGjuQIQL06evSonnjiCR05ckQ+Pj7q3bu3MjMz9ctf/lKSlJKSInd3d8XExKisrEx2u12LFi0yX+/h4aGMjAxNmjRJNptNLVu21NixYzVnzhwzJjQ0VGvXrtXUqVO1YMECdezYUW+88QbLeAMAgEsiOQJQr5YsWXLJci8vL6Wmpio1NfWiMSEhIVq3bt0l64mMjNSuXbuuqI0AAODGRHJUT256zvVynoMvRDdQSwAAAABUhwUZAABAo7F161bdf//9CgoKkpubm9asWeNSbhiGkpKS1KFDB3l7eysqKkpff/21S8yxY8c0evRoWa1W+fr6KjY2VidOnHCJ2b17twYOHCgvLy8FBwdr3rx5F7Rl9erV6tatm7y8vNSrV6/LzlgDaPpIjgAAQKNx8uRJ9enT56KX1s6bN0+vvvqq0tLStGPHDrVs2VJ2u12nT582Y0aPHq19+/YpKytLGRkZ2rp1qyZMmGCWO51ODRs2TCEhIcrLy9OLL76oWbNm6fXXXzdjtm/frkcffVSxsbHatWuXRo4cqZEjR2rv3r3XrvMAGhyX1QEAgEZjxIgRGjFiRLVlhmHolVde0cyZM/Xggw9Kkt566y0FBARozZo1GjVqlL788kutX79eO3fuVP/+/SVJr732mu6991699NJLCgoK0vLly1VeXq4333xTFotFPXr0UH5+vl5++WUziVqwYIGGDx+uadOmSZLmzp2rrKwsLVy4UGlpafVwJgA0BGaOAABAk3Dw4EE5HA5FRUWZx3x8fBQREaGcnBxJUk5Ojnx9fc3ESJKioqLk7u6uHTt2mDGDBg2SxWIxY+x2uwoKCnT8+HEz5tz3qYqpep/qlJWVyel0umwAmhaSIwAA0CRUPfw5ICDA5XhAQIAcDockyeFwyN/f36W8WbNm8vPzc4mpro6qskvFVJVXJzk5WT4+PuYWHBxc2y4CaGAkRwAAAHUgMTFRpaWl5nbo0KGGbhKAWqp1cnS5VWSefPJJubm5uWzDhw93iamrVWQAAMCNo2pGqLi42OV4cXGxAgMDJUmBgYHmDFOVM2fO6NixYy4x1dVRVXapmKry6nh6espqtbpsAJqWWidHl1tFRpKGDx+uI0eOmNvbb7/tUl4Xq8gAAIAby0033aTAwEBlZ2ebx5xOp3bs2CGbzSZJstlsKikpUV5enhmzadMmVVZWKiIiwozZunWrKioqzJisrCx17dpVbdq0MWPOfZ+qmKr3AXB9qvVqdZdaRaaKp6fnRf+yUleryAAAgOvPiRMndODAAXO/sLBQu3fvliS5ublpypQp+sMf/qBbbrlFoaGh+v3vf6+goCCNHDlSktS9e3cNHz5c48ePV1pamioqKhQfH69Ro0YpKChIkvTYY49p9uzZio2N1YwZM7R3714tWLBAKSkp5vs+88wzuueeezR//nxFR0dr5cqV+uyzz/hDLXCduyb3HG3evFn+/v7q2rWrJk2apB9++MEsq6tVZM7HCjEAADR9n332mW677TbddtttkqSEhAQNHDjQLJ8+fbomT56sCRMm6Pbbb9eJEye0fv16eXl5mTHLly9Xt27dNHToUN177726++67XZIaHx8fbdiwQYWFhQoPD9ezzz6rpKQklz/A3nnnnVqxYoVef/119enTR3/729+0Zs0a9ezZsx7OAoCGUufPORo+fLgeeughhYaG6ptvvtFvf/tbjRgxQjk5OfLw8KjxKjKhoaEuMeeuIlM15X2u5ORkzZ49u667AwAA6lFkZKQMw3A55nQ65ePjI+nn2aM5c+Zozpw5F63Dz89PK1asuOT79O7dWx9//PElYx5++GE9/PDDNWw5gOtBnSdHo0aNMv/dq1cv9e7dW507d9bmzZs1dOjQun47U2JiohISEsx9p9PJEpoAAAAAauyaL+V98803q127dub1w3W1isz5WCEGAAAAwNWo85mj83333Xf64Ycf1KFDB0muq8iEh4dLqn4Vmd/97neqqKhQ8+bNJV24igwANGU3PbfWZf/gC9EN1BIAAFCl1jNHJ06cUH5+vvLz8yX9vIpMfn6+ioqKdOLECU2bNk25ubk6ePCgsrOz9eCDD6pLly6y2+2SXFeR+fTTT/XJJ59Uu4qMxWJRbGys9u3bp3feeUcLFixwuWwOAAAAAOpSrZOj6laRue2225SUlCQPDw/t3r1bDzzwgG699VbFxsYqPDxcH3/8sTw9Pc066mIVGQAAAACoS7W+rK66VWTOlZmZedk66moVGQAAAACoK9d8QQYAAAAAaApIjgAAAABAJEcAAAAAIInkCAAAAAAkkRwBAAAAgCSSIwAAAACQRHIEAAAAAJJIjgAAAABAEskRAAAAAEgiOQIAAAAASSRHAAAAACCJ5AgAAAAAJJEcAQAAAIAkkiMAAAAAkERyBAAAAACSSI4AAAAAQBLJEQAAAABIIjkCAAAAAElSs4ZuAABAuum5tS77B1+IbqCWAABw42LmCAAAAABEcgSgniUnJ+v2229X69at5e/vr5EjR6qgoMAl5vTp04qLi1Pbtm3VqlUrxcTEqLi42CWmqKhI0dHRatGihfz9/TVt2jSdOXPGJWbz5s3q16+fPD091aVLF6Wnp1/r7gEAgCaM5KiB3PTcWpcNuFFs2bJFcXFxys3NVVZWlioqKjRs2DCdPHnSjJk6dao++OADrV69Wlu2bNHhw4f10EMPmeVnz55VdHS0ysvLtX37di1btkzp6elKSkoyYwoLCxUdHa3BgwcrPz9fU6ZM0dNPP63MzMx67S8AAGg6uOcIQL1av369y356err8/f2Vl5enQYMGqbS0VEuWLNGKFSs0ZMgQSdLSpUvVvXt35ebmasCAAdqwYYP279+vjRs3KiAgQH379tXcuXM1Y8YMzZo1SxaLRWlpaQoNDdX8+fMlSd27d9e2bduUkpIiu91e7/0GAACNHzNHABpUaWmpJMnPz0+SlJeXp4qKCkVFRZkx3bp1U6dOnZSTkyNJysnJUa9evRQQEGDG2O12OZ1O7du3z4w5t46qmKo6AAAAzsfMEYAGU1lZqSlTpuiuu+5Sz549JUkOh0MWi0W+vr4usQEBAXI4HGbMuYlRVXlV2aVinE6nTp06JW9vb5eysrIylZWVmftOp/PqOwgAAJoUZo4ANJi4uDjt3btXK1eubOimKDk5WT4+PuYWHBzc0E0CAAD1jOQIQIOIj49XRkaGPvroI3Xs2NE8HhgYqPLycpWUlLjEFxcXKzAw0Iw5f/W6qv3LxVit1gtmjSQpMTFRpaWl5nbo0KGr7iMAAGhaSI4A1CvDMBQfH6/33ntPmzZtUmhoqEt5eHi4mjdvruzsbPNYQUGBioqKZLPZJEk2m0179uzR0aNHzZisrCxZrVaFhYWZMefWURVTVcf5PD09ZbVaXTYAAHBj4Z4jAPUqLi5OK1as0Pvvv6/WrVub9wj5+PjI29tbPj4+io2NVUJCgvz8/GS1WjV58mTZbDYNGDBAkjRs2DCFhYVpzJgxmjdvnhwOh2bOnKm4uDh5enpKkiZOnKiFCxdq+vTpGjdunDZt2qRVq1Zp7VqWzgcAANVj5ghAvVq8eLFKS0sVGRmpDh06mNs777xjxqSkpOi+++5TTEyMBg0apMDAQL377rtmuYeHhzIyMuTh4SGbzabHH39cTzzxhObMmWPGhIaGau3atcrKylKfPn00f/58vfHGGyzjDQAALoqZIwD1yjCMy8Z4eXkpNTVVqampF40JCQnRunXrLllPZGSkdu3aVes2AgCAGxMzRwAAAACgK0iOtm7dqvvvv19BQUFyc3PTmjVrXMoNw1BSUpI6dOggb29vRUVF6euvv3aJOXbsmEaPHi2r1SpfX1/FxsbqxIkTLjG7d+/WwIED5eXlpeDgYM2bN6/2vQMAAACAGqp1cnTy5En16dPnope7zJs3T6+++qrS0tK0Y8cOtWzZUna7XadPnzZjRo8erX379ikrK0sZGRnaunWrJkyYYJY7nU4NGzZMISEhysvL04svvqhZs2bp9ddfv4IuAgAAAMDl1fqeoxEjRmjEiBHVlhmGoVdeeUUzZ87Ugw8+KEl66623FBAQoDVr1mjUqFH68ssvtX79eu3cuVP9+/eXJL322mu699579dJLLykoKEjLly9XeXm53nzzTVksFvXo0UP5+fl6+eWXXZIoAAAAAKgrdXrPUWFhoRwOh6KiosxjPj4+ioiIUE5OjiQpJydHvr6+ZmIkSVFRUXJ3d9eOHTvMmEGDBslisZgxdrtdBQUFOn78eLXvXVZWJqfT6bIBAAAAQE3VaXJU9bySgIAAl+MBAQFmmcPhkL+/v0t5s2bN5Ofn5xJTXR3nvsf5kpOT5ePjY27BwcFX3yEAAAAAN4zrZrW6xMRElZaWmtuhQ4caukkAAAAAmpA6TY4CAwMlScXFxS7Hi4uLzbLAwEAdPXrUpfzMmTM6duyYS0x1dZz7Hufz9PSU1Wp12QAAAACgpuo0OQoNDVVgYKCys7PNY06nUzt27JDNZpMk2Ww2lZSUKC8vz4zZtGmTKisrFRERYcZs3bpVFRUVZkxWVpa6du2qNm3a1GWTAQAAAEDSFaxWd+LECR04cMDcLywsVH5+vvz8/NSpUydNmTJFf/jDH3TLLbcoNDRUv//97xUUFKSRI0dKkrp3767hw4dr/PjxSktLU0VFheLj4zVq1CgFBQVJkh577DHNnj1bsbGxmjFjhvbu3asFCxYoJSWlbnoNAI3cTc+tveDYwReiG6AlAADcOGqdHH322WcaPHiwuZ+QkCBJGjt2rNLT0zV9+nSdPHlSEyZMUElJie6++26tX79eXl5e5muWL1+u+Ph4DR06VO7u7oqJidGrr75qlvv4+GjDhg2Ki4tTeHi42rVrp6SkJJbxBgAAAHDN1Do5ioyMlGEYFy13c3PTnDlzNGfOnIvG+Pn5acWKFZd8n969e+vjjz+ubfMAAAAA4IpcN6vVAQAAAMDVIDkCAAAAAJEcAQAAAIAkkiMAAAAAkHQFCzLg2mDZXgAAAKBhMXMEAAAAACI5AgAAAABJJEcAAKAJmTVrltzc3Fy2bt26meWnT59WXFyc2rZtq1atWikmJkbFxcUudRQVFSk6OlotWrSQv7+/pk2bpjNnzrjEbN68Wf369ZOnp6e6dOmi9PT0+ugegAZGcgQAAJqUHj166MiRI+a2bds2s2zq1Kn64IMPtHr1am3ZskWHDx/WQw89ZJafPXtW0dHRKi8v1/bt27Vs2TKlp6crKSnJjCksLFR0dLQGDx6s/Px8TZkyRU8//bQyMzPrtZ8A6h8LMgAAgCalWbNmCgwMvOB4aWmplixZohUrVmjIkCGSpKVLl6p79+7Kzc3VgAEDtGHDBu3fv18bN25UQECA+vbtq7lz52rGjBmaNWuWLBaL0tLSFBoaqvnz50uSunfvrm3btiklJUV2u71e+wqgfjFzBAAAmpSvv/5aQUFBuvnmmzV69GgVFRVJkvLy8lRRUaGoqCgztlu3burUqZNycnIkSTk5OerVq5cCAgLMGLvdLqfTqX379pkx59ZRFVNVB4DrFzNHAACgyYiIiFB6erq6du2qI0eOaPbs2Ro4cKD27t0rh8Mhi8UiX19fl9cEBATI4XBIkhwOh0tiVFVeVXapGKfTqVOnTsnb27vatpWVlamsrMzcdzqdV9VXAPWP5AgAADQZI0aMMP/du3dvRUREKCQkRKtWrbpo0lJfkpOTNXv27AZtA4Crw2V1AACgyfL19dWtt96qAwcOKDAwUOXl5SopKXGJKS4uNu9RCgwMvGD1uqr9y8VYrdZLJmCJiYkqLS01t0OHDl1t9wDUM5IjAADQZJ04cULffPONOnTooPDwcDVv3lzZ2dlmeUFBgYqKimSz2SRJNptNe/bs0dGjR82YrKwsWa1WhYWFmTHn1lEVU1XHxXh6espqtbpsAJoWkiMAANBk/Od//qe2bNmigwcPavv27frVr34lDw8PPfroo/Lx8VFsbKwSEhL00UcfKS8vT0899ZRsNpsGDBggSRo2bJjCwsI0ZswYffHFF8rMzNTMmTMVFxcnT09PSdLEiRP17bffavr06frqq6+0aNEirVq1SlOnTm3IrgOoB9xzBABNxE3PrXXZP/hCdAO1BGg43333nR599FH98MMPat++ve6++27l5uaqffv2kqSUlBS5u7srJiZGZWVlstvtWrRokfl6Dw8PZWRkaNKkSbLZbGrZsqXGjh2rOXPmmDGhoaFau3atpk6dqgULFqhjx4564403WMYbuAGQHAEAgCZj5cqVlyz38vJSamqqUlNTLxoTEhKidevWXbKeyMhI7dq164raCKDp4rI6AAAAABDJEQAAAABIIjkCAAAAAEkkRwAAAAAgiQUZGjVWpgIAAADqDzNHAAAAACCSIwAAAACQRHIEAAAAAJJIjgDUs61bt+r+++9XUFCQ3NzctGbNGpdywzCUlJSkDh06yNvbW1FRUfr6669dYo4dO6bRo0fLarXK19dXsbGxOnHihEvM7t27NXDgQHl5eSk4OFjz5s271l0DAABNHMkRgHp18uRJ9enT56JPr583b55effVVpaWlaceOHWrZsqXsdrtOnz5txowePVr79u1TVlaWMjIytHXrVk2YMMEsdzqdGjZsmEJCQpSXl6cXX3xRs2bN0uuvv37N+wcAAJouVqsDUK9GjBihESNGVFtmGIZeeeUVzZw5Uw8++KAk6a233lJAQIDWrFmjUaNG6csvv9T69eu1c+dO9e/fX5L02muv6d5779VLL72koKAgLV++XOXl5XrzzTdlsVjUo0cP5efn6+WXX3ZJogAAAM7FzBGARqOwsFAOh0NRUVHmMR8fH0VERCgnJ0eSlJOTI19fXzMxkqSoqCi5u7trx44dZsygQYNksVjMGLvdroKCAh0/frza9y4rK5PT6XTZAADAjYXkCECj4XA4JEkBAQEuxwMCAswyh8Mhf39/l/JmzZrJz8/PJaa6Os59j/MlJyfLx8fH3IKDg6++QwAAoEnhsjoAkJSYmKiEhARz3+l0NvoEiQdFAwBQt+p85mjWrFlyc3Nz2bp162aWnz59WnFxcWrbtq1atWqlmJgYFRcXu9RRVFSk6OhotWjRQv7+/po2bZrOnDlT100F0MgEBgZK0gVjQnFxsVkWGBioo0ePupSfOXNGx44dc4mpro5z3+N8np6eslqtLhsAALixXJPL6nr06KEjR46Y27Zt28yyqVOn6oMPPtDq1au1ZcsWHT58WA899JBZfvbsWUVHR6u8vFzbt2/XsmXLlJ6erqSkpGvRVACNSGhoqAIDA5WdnW0eczqd2rFjh2w2myTJZrOppKREeXl5ZsymTZtUWVmpiIgIM2br1q2qqKgwY7KystS1a1e1adOmnnoDAACammtyWV2zZs2q/etsaWmplixZohUrVmjIkCGSpKVLl6p79+7Kzc3VgAEDtGHDBu3fv18bN25UQECA+vbtq7lz52rGjBmaNWuWyw3WNzouqUFTdOLECR04cMDcLywsVH5+vvz8/NSpUydNmTJFf/jDH3TLLbcoNDRUv//97xUUFKSRI0dKkrp3767hw4dr/PjxSktLU0VFheLj4zVq1CgFBQVJkh577DHNnj1bsbGxmjFjhvbu3asFCxYoJSWlIboMAACaiGuSHH399dcKCgqSl5eXbDabkpOT1alTJ+Xl5amiosJlJapu3bqpU6dOysnJ0YABA5STk6NevXq53Extt9s1adIk7du3T7fddlu171lWVqaysjJz/3pcaer8ZAhoij777DMNHjzY3K+6z2fs2LFKT0/X9OnTdfLkSU2YMEElJSW6++67tX79enl5eZmvWb58ueLj4zV06FC5u7srJiZGr776qlnu4+OjDRs2KC4uTuHh4WrXrp2SkpJYxhsAAFxSnSdHERERSk9PV9euXXXkyBHNnj1bAwcO1N69e+VwOGSxWOTr6+vymvNXoqrtKlPSzytNzZ49u247A6DORUZGyjCMi5a7ublpzpw5mjNnzkVj/Pz8tGLFiku+T+/evfXxxx9fcTsBAMCNp86To3Mf7ti7d29FREQoJCREq1atkre3d12/nakprjQFAAAAoPG45s858vX11a233qoDBw4oMDBQ5eXlKikpcYk5fyWq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",
      "text/plain": [
       "<Figure size 1000x500 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the distribution of these losses\n",
    "plt.figure(figsize=(10, 5))\n",
    "plt.subplot(1, 3, 1)\n",
    "plt.hist(lossdf['loss_TST'], bins=50)\n",
    "plt.title('loss_TST')\n",
    "plt.subplot(1, 3, 2)\n",
    "plt.hist(lossdf['loss_TGTSF'], bins=50)\n",
    "plt.title('loss_TGTSF')\n",
    "plt.subplot(1, 3, 3)\n",
    "plt.hist(lossdf['loss_mutual'], bins=50)\n",
    "plt.title('loss_mutual')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_reasoning_samples(lossdf):\n",
    "    lossdf['loss_mutual'] = (lossdf.loss_TST-lossdf.loss_TGTSF)/lossdf.loss_TST\n",
    "    lossdf_ok = lossdf[lossdf.loss_mutual > -10]\n",
    "    lossdf_pos = lossdf_ok[lossdf_ok.loss_mutual > 0]\n",
    "    lossdf_neg = lossdf_ok[lossdf_ok.loss_mutual < 0]\n",
    "    prob_pos = lossdf_pos['loss_mutual'] / sum(lossdf_pos['loss_mutual'])\n",
    "    prob_neg = lossdf_neg['loss_mutual'] / sum(lossdf_neg['loss_mutual'])\n",
    "    sample_num_pos = int(len(lossdf_pos) * 0.1)\n",
    "    sample_num_neg = int(len(lossdf_neg) * 0.1)\n",
    "    sample_pos = np.random.choice(lossdf_pos.index, sample_num_pos, p=prob_pos)\n",
    "    sample_neg = np.random.choice(lossdf_neg.index, sample_num_neg, p=prob_neg)\n",
    "    samples = np.concatenate((sample_pos, sample_neg))\n",
    "    return samples.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "347"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sum(lossdf['loss_TST']-lossdf['loss_TGTSF']<0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.microsoft.datawrangler.viewer.v0+json": {
       "columns": [
        {
         "name": "index",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "loss_TST",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "loss_TGTSF",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "loss_mutual",
         "rawType": "float64",
         "type": "float"
        }
       ],
       "conversionMethod": "pd.DataFrame",
       "ref": "e2fd5258-d414-4e5c-b0c5-aa9c0cadbf42",
       "rows": [
        [
         "4920",
         "0.16813600063323975",
         "0.16823232173919678",
         "-0.000572876157362274"
        ],
        [
         "13128",
         "0.08036655187606812",
         "0.08042744547128677",
         "-0.0007576982438236422"
        ],
        [
         "12552",
         "0.13246308267116547",
         "0.13277429342269897",
         "-0.00234941498610656"
        ],
        [
         "3576",
         "0.24461953341960907",
         "0.24524375796318054",
         "-0.0025518180614820573"
        ],
        [
         "10032",
         "0.2042212188243866",
         "0.2050756812095642",
         "-0.004184003944822107"
        ],
        [
         "2760",
         "0.1537216752767563",
         "0.1543746292591095",
         "-0.004247637694408743"
        ],
        [
         "16728",
         "0.11879145354032516",
         "0.1193728893995285",
         "-0.004894593355623545"
        ],
        [
         "18048",
         "0.13900883495807648",
         "0.13999326527118683",
         "-0.0070817823443182215"
        ],
        [
         "5544",
         "0.3256269693374634",
         "0.3280584514141083",
         "-0.007467078300031813"
        ],
        [
         "4536",
         "0.0428323820233345",
         "0.04337126016616821",
         "-0.012581092093830695"
        ],
        [
         "26832",
         "0.13025175034999847",
         "0.13241390883922577",
         "-0.016599842101295188"
        ],
        [
         "2184",
         "0.26290857791900635",
         "0.26874983310699463",
         "-0.022217818962863144"
        ],
        [
         "22344",
         "0.2611582279205322",
         "0.26902902126312256",
         "-0.030138025538239344"
        ],
        [
         "2856",
         "0.16746167838573456",
         "0.1728811264038086",
         "-0.032362317578059685"
        ],
        [
         "18720",
         "0.29972004890441895",
         "0.30983060598373413",
         "-0.03373333587884023"
        ],
        [
         "12792",
         "0.12921445071697235",
         "0.13384953141212463",
         "-0.03587122546614257"
        ],
        [
         "23400",
         "0.3034919202327728",
         "0.3144967555999756",
         "-0.03626071942462998"
        ],
        [
         "7704",
         "0.18433287739753723",
         "0.19119104743003845",
         "-0.03720535440734594"
        ],
        [
         "24600",
         "0.11938464641571045",
         "0.12437742948532104",
         "-0.04182098133645407"
        ],
        [
         "12648",
         "0.17834070324897766",
         "0.18618075549602509",
         "-0.04396109303271107"
        ],
        [
         "16368",
         "0.08489065617322922",
         "0.08974187076091766",
         "-0.057146626099684995"
        ],
        [
         "7344",
         "0.0017290891846641898",
         "0.00182943360414356",
         "-0.05803310804865061"
        ],
        [
         "21864",
         "0.40078872442245483",
         "0.42424917221069336",
         "-0.05853569813383731"
        ],
        [
         "21432",
         "0.2976885139942169",
         "0.3151261806488037",
         "-0.05857688770257877"
        ],
        [
         "21048",
         "0.3092096447944641",
         "0.3287619352340698",
         "-0.06323311956392041"
        ],
        [
         "11352",
         "0.18935292959213257",
         "0.2020704746246338",
         "-0.06716318073290387"
        ],
        [
         "25680",
         "0.17136798799037933",
         "0.18295249342918396",
         "-0.06760017185622197"
        ],
        [
         "3600",
         "0.33252406120300293",
         "0.35595017671585083",
         "-0.07044938470947662"
        ],
        [
         "24096",
         "0.34478145837783813",
         "0.36943358182907104",
         "-0.07150072271060821"
        ],
        [
         "16824",
         "0.02309262566268444",
         "0.024754716083407402",
         "-0.07197494321352754"
        ],
        [
         "3792",
         "0.19371823966503143",
         "0.20792484283447266",
         "-0.07333642507802374"
        ],
        [
         "10992",
         "0.20182764530181885",
         "0.2166460007429123",
         "-0.07342084093055563"
        ],
        [
         "12888",
         "0.0933951735496521",
         "0.100692018866539",
         "-0.07812871949970356"
        ],
        [
         "480",
         "0.0569077804684639",
         "0.06141364201903343",
         "-0.07917830415239106"
        ],
        [
         "26016",
         "0.21459335088729858",
         "0.2317276895046234",
         "-0.07984561752019774"
        ],
        [
         "25488",
         "0.0007894574664533138",
         "0.0008536456152796745",
         "-0.08130665875481538"
        ],
        [
         "3720",
         "0.18137916922569275",
         "0.1967562884092331",
         "-0.0847788599384661"
        ],
        [
         "20808",
         "0.1803780198097229",
         "0.19694730639457703",
         "-0.09185867880317529"
        ],
        [
         "6336",
         "0.4172123372554779",
         "0.4557141959667206",
         "-0.09228360542863394"
        ],
        [
         "21216",
         "0.27658170461654663",
         "0.3030931353569031",
         "-0.09585388439597602"
        ],
        [
         "13872",
         "0.18296775221824646",
         "0.2006388008594513",
         "-0.09658012642646756"
        ],
        [
         "1752",
         "0.16145732998847961",
         "0.17767593264579773",
         "-0.1004513245603365"
        ],
        [
         "19488",
         "0.026435744017362595",
         "0.02914958819746971",
         "-0.10265813507366031"
        ],
        [
         "7800",
         "0.06934034824371338",
         "0.07656840980052948",
         "-0.10424034115622459"
        ],
        [
         "25512",
         "0.0019113407470285892",
         "0.002117214724421501",
         "-0.10771181314109897"
        ],
        [
         "1248",
         "0.8303279280662537",
         "0.9208037257194519",
         "-0.1089639341216751"
        ],
        [
         "24888",
         "0.11013945937156677",
         "0.12352737784385681",
         "-0.12155424176474774"
        ],
        [
         "13032",
         "0.18367481231689453",
         "0.20615482330322266",
         "-0.12239027606868227"
        ],
        [
         "13896",
         "0.36267155408859253",
         "0.40810471773147583",
         "-0.12527357916740556"
        ],
        [
         "20088",
         "0.22386138141155243",
         "0.25194069743156433",
         "-0.12543171065486358"
        ]
       ],
       "shape": {
        "columns": 3,
        "rows": 347
       }
      },
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loss_TST</th>\n",
       "      <th>loss_TGTSF</th>\n",
       "      <th>loss_mutual</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>4920</th>\n",
       "      <td>1.681360e-01</td>\n",
       "      <td>0.168232</td>\n",
       "      <td>-0.000573</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13128</th>\n",
       "      <td>8.036655e-02</td>\n",
       "      <td>0.080427</td>\n",
       "      <td>-0.000758</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12552</th>\n",
       "      <td>1.324631e-01</td>\n",
       "      <td>0.132774</td>\n",
       "      <td>-0.002349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3576</th>\n",
       "      <td>2.446195e-01</td>\n",
       "      <td>0.245244</td>\n",
       "      <td>-0.002552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10032</th>\n",
       "      <td>2.042212e-01</td>\n",
       "      <td>0.205076</td>\n",
       "      <td>-0.004184</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25320</th>\n",
       "      <td>5.209364e-08</td>\n",
       "      <td>0.001750</td>\n",
       "      <td>-33596.385014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25368</th>\n",
       "      <td>5.209364e-08</td>\n",
       "      <td>0.001774</td>\n",
       "      <td>-34049.421053</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25344</th>\n",
       "      <td>5.209364e-08</td>\n",
       "      <td>0.001775</td>\n",
       "      <td>-34065.616155</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17832</th>\n",
       "      <td>4.125366e-08</td>\n",
       "      <td>0.001664</td>\n",
       "      <td>-40326.600541</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17856</th>\n",
       "      <td>3.467107e-08</td>\n",
       "      <td>0.001630</td>\n",
       "      <td>-47001.133435</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>347 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           loss_TST  loss_TGTSF   loss_mutual\n",
       "4920   1.681360e-01    0.168232     -0.000573\n",
       "13128  8.036655e-02    0.080427     -0.000758\n",
       "12552  1.324631e-01    0.132774     -0.002349\n",
       "3576   2.446195e-01    0.245244     -0.002552\n",
       "10032  2.042212e-01    0.205076     -0.004184\n",
       "...             ...         ...           ...\n",
       "25320  5.209364e-08    0.001750 -33596.385014\n",
       "25368  5.209364e-08    0.001774 -34049.421053\n",
       "25344  5.209364e-08    0.001775 -34065.616155\n",
       "17832  4.125366e-08    0.001664 -40326.600541\n",
       "17856  3.467107e-08    0.001630 -47001.133435\n",
       "\n",
       "[347 rows x 3 columns]"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get the rows that have loss_TST - loss_TGTSF < 0\n",
    "lossdf[lossdf['loss_TST']-lossdf['loss_TGTSF']<0].sort_values(by='loss_mutual', ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "# remove the lines that have |loss_mutual| >10\n",
    "lossdf_ok = lossdf[lossdf['loss_mutual']>-10]\n",
    "lossdf_pos = lossdf_ok[lossdf_ok['loss_mutual']>0]\n",
    "lossdf_neg = lossdf_ok[lossdf_ok['loss_mutual']<0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([15336,  4056, 19968, 21744, 23232, 20640, 10872, 22248,  6264,\n",
       "        8616, 25104, 11760, 15312, 10080, 18456, 23040,  8328, 15888,\n",
       "       17496, 20952,  6720,  2832, 12528, 18816,   576,   240,  9552,\n",
       "        5640, 25776, 24408, 10536, 23112,  3408, 19248, 24936, 27456,\n",
       "       11304,  7152,  4248, 25776, 10464, 13944, 19224,  6216, 13560,\n",
       "       22824,  4680, 15768, 20880, 24072,  1608, 19512, 26160, 12384,\n",
       "       13560, 10512, 18648,  6672, 18288,  7536,  6792,  9336, 25032,\n",
       "        2112, 14904,  7224, 26184, 22896, 23064, 12312, 24408,  7968,\n",
       "       14616,   456, 19416,  7968, 13608, 22632,  3408, 13680])"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# do importance sampling over the loss_mutual\n",
    "prob = lossdf_pos['loss_mutual'] / sum(lossdf_pos['loss_mutual'])\n",
    "# sample 10% of the data\n",
    "sample_num = int(len(lossdf_pos) * 0.1)\n",
    "samples = np.random.choice(lossdf_pos.index, sample_num, p=prob)\n",
    "samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "prob_neg = lossdf_neg['loss_mutual'] / sum(lossdf_neg['loss_mutual'])\n",
    "# sample 10% of the data\n",
    "sample_num = int(len(lossdf_neg) * 0.1)\n",
    "samples_neg = np.random.choice(lossdf_neg.index, sample_num, p=prob_neg)\n",
    "samples_neg\n",
    "# combine the two samples\n",
    "samples = np.concatenate((samples, samples_neg))\n",
    "samples = np.unique(samples)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.microsoft.datawrangler.viewer.v0+json": {
       "columns": [
        {
         "name": "index",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "loss_TST",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "loss_TGTSF",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "loss_mutual",
         "rawType": "float64",
         "type": "float"
        }
       ],
       "conversionMethod": "pd.DataFrame",
       "ref": "7296604e-f4fb-44d7-81e7-d931d0b5e1e8",
       "rows": [
        [
         "25776",
         "0.10225605964660645",
         "0.0011526739690452814",
         "0.9887275729865899"
        ],
        [
         "25104",
         "0.1357155740261078",
         "0.001674434868618846",
         "0.9876621759835998"
        ],
        [
         "7152",
         "0.19122210144996643",
         "0.0027403596322983503",
         "0.985669231686509"
        ],
        [
         "18816",
         "0.20197533071041107",
         "0.0034128983970731497",
         "0.9831023997580848"
        ],
        [
         "13608",
         "0.6446126699447632",
         "0.015216301195323467",
         "0.9763946600729593"
        ],
        [
         "7968",
         "0.06645415723323822",
         "0.0016128381248563528",
         "0.9757300642727937"
        ],
        [
         "19248",
         "0.9412417411804199",
         "0.02338123880326748",
         "0.9751591564841303"
        ],
        [
         "7224",
         "0.07679254561662674",
         "0.001937574241310358",
         "0.974768719727259"
        ],
        [
         "22824",
         "0.6914680004119873",
         "0.01804260164499283",
         "0.9739068161733547"
        ],
        [
         "17496",
         "0.14502370357513428",
         "0.003985031973570585",
         "0.9725215128607855"
        ],
        [
         "4056",
         "0.31991612911224365",
         "0.009518077597022057",
         "0.9702482096684703"
        ],
        [
         "8328",
         "0.03079730086028576",
         "0.0010737426346167922",
         "0.9651351707901966"
        ],
        [
         "576",
         "0.18824705481529236",
         "0.007035539485514164",
         "0.9626260315604012"
        ],
        [
         "6216",
         "0.25062236189842224",
         "0.009768045507371426",
         "0.9610248445773948"
        ],
        [
         "6264",
         "0.147649884223938",
         "0.006143718492239714",
         "0.9583899538795327"
        ],
        [
         "10464",
         "0.2661094069480896",
         "0.014474218711256981",
         "0.945608015600589"
        ],
        [
         "15312",
         "0.15600600838661194",
         "0.00856463797390461",
         "0.945100588993471"
        ],
        [
         "15336",
         "0.1209331601858139",
         "0.006854727398604155",
         "0.9433180495070842"
        ],
        [
         "2832",
         "0.9246672987937927",
         "0.054443955421447754",
         "0.9411204922111244"
        ],
        [
         "12528",
         "0.8792209625244141",
         "0.05430424213409424",
         "0.9382359560921111"
        ],
        [
         "240",
         "0.18477892875671387",
         "0.011577369645237923",
         "0.9373447517899561"
        ],
        [
         "6672",
         "0.12148825824260712",
         "0.008408067747950554",
         "0.9307911079673232"
        ],
        [
         "26160",
         "0.02560279332101345",
         "0.0017840757500380278",
         "0.9303171443963597"
        ],
        [
         "24408",
         "0.5576574802398682",
         "0.03945234417915344",
         "0.9292534475424169"
        ],
        [
         "11760",
         "0.45122432708740234",
         "0.0325637087225914",
         "0.9278325507563252"
        ],
        [
         "26184",
         "0.025167446583509445",
         "0.001817880431190133",
         "0.9277685789395389"
        ],
        [
         "24072",
         "0.26190441846847534",
         "0.019338484853506088",
         "0.926162051917296"
        ],
        [
         "18648",
         "0.45925554633140564",
         "0.035547010600566864",
         "0.9225986253524402"
        ],
        [
         "6720",
         "0.23411564528942108",
         "0.020425841212272644",
         "0.9127531985868711"
        ],
        [
         "10872",
         "0.3086959719657898",
         "0.03379485756158829",
         "0.8905238142681904"
        ],
        [
         "20640",
         "0.6466816067695618",
         "0.07474963366985321",
         "0.8844104534791734"
        ],
        [
         "5640",
         "0.14550338685512543",
         "0.021752556785941124",
         "0.8505013714381805"
        ],
        [
         "14904",
         "0.42888158559799194",
         "0.06601180136203766",
         "0.8460838525627137"
        ],
        [
         "9552",
         "0.4871537685394287",
         "0.07684092223644257",
         "0.8422655695206362"
        ],
        [
         "24936",
         "0.15853655338287354",
         "0.025223640725016594",
         "0.8408970033295712"
        ],
        [
         "4248",
         "0.34109997749328613",
         "0.05622265487909317",
         "0.835172504870072"
        ],
        [
         "19968",
         "0.3851519525051117",
         "0.06747505068778992",
         "0.8248092726807755"
        ],
        [
         "10512",
         "0.18926042318344116",
         "0.03386644273996353",
         "0.8210590351098476"
        ],
        [
         "7536",
         "0.2028706967830658",
         "0.03708198294043541",
         "0.8172137054367787"
        ],
        [
         "9336",
         "0.009508246555924416",
         "0.002049192553386092",
         "0.7844826024090343"
        ],
        [
         "19224",
         "0.4529202878475189",
         "0.097743920981884",
         "0.7841917803099369"
        ],
        [
         "22896",
         "0.25579506158828735",
         "0.05858452245593071",
         "0.7709708620167777"
        ],
        [
         "20880",
         "0.7763883471488953",
         "0.17841807007789612",
         "0.7701948119995685"
        ],
        [
         "456",
         "0.3652389943599701",
         "0.08721940964460373",
         "0.7611990751495649"
        ],
        [
         "10536",
         "0.13713933527469635",
         "0.03422769159078598",
         "0.750416672778628"
        ],
        [
         "14616",
         "0.5949416160583496",
         "0.1538972109556198",
         "0.7413238428751534"
        ],
        [
         "23112",
         "0.9790477156639099",
         "0.2620701491832733",
         "0.7323213720941488"
        ],
        [
         "13560",
         "0.38965439796447754",
         "0.11191920936107635",
         "0.7127731396187671"
        ],
        [
         "27456",
         "0.26235318183898926",
         "0.07591454684734344",
         "0.7106398850770046"
        ],
        [
         "8616",
         "0.16968068480491638",
         "0.05268212780356407",
         "0.6895219519880341"
        ]
       ],
       "shape": {
        "columns": 3,
        "rows": 102
       }
      },
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loss_TST</th>\n",
       "      <th>loss_TGTSF</th>\n",
       "      <th>loss_mutual</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>25776</th>\n",
       "      <td>0.102256</td>\n",
       "      <td>0.001153</td>\n",
       "      <td>0.988728</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25104</th>\n",
       "      <td>0.135716</td>\n",
       "      <td>0.001674</td>\n",
       "      <td>0.987662</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7152</th>\n",
       "      <td>0.191222</td>\n",
       "      <td>0.002740</td>\n",
       "      <td>0.985669</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18816</th>\n",
       "      <td>0.201975</td>\n",
       "      <td>0.003413</td>\n",
       "      <td>0.983102</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13608</th>\n",
       "      <td>0.644613</td>\n",
       "      <td>0.015216</td>\n",
       "      <td>0.976395</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9480</th>\n",
       "      <td>0.090610</td>\n",
       "      <td>0.534219</td>\n",
       "      <td>-4.895814</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1704</th>\n",
       "      <td>0.195938</td>\n",
       "      <td>1.357213</td>\n",
       "      <td>-5.926759</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17088</th>\n",
       "      <td>0.016676</td>\n",
       "      <td>0.119016</td>\n",
       "      <td>-6.136770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27096</th>\n",
       "      <td>0.000212</td>\n",
       "      <td>0.001577</td>\n",
       "      <td>-6.432513</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24672</th>\n",
       "      <td>0.094945</td>\n",
       "      <td>0.803316</td>\n",
       "      <td>-7.460820</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>102 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       loss_TST  loss_TGTSF  loss_mutual\n",
       "25776  0.102256    0.001153     0.988728\n",
       "25104  0.135716    0.001674     0.987662\n",
       "7152   0.191222    0.002740     0.985669\n",
       "18816  0.201975    0.003413     0.983102\n",
       "13608  0.644613    0.015216     0.976395\n",
       "...         ...         ...          ...\n",
       "9480   0.090610    0.534219    -4.895814\n",
       "1704   0.195938    1.357213    -5.926759\n",
       "17088  0.016676    0.119016    -6.136770\n",
       "27096  0.000212    0.001577    -6.432513\n",
       "24672  0.094945    0.803316    -7.460820\n",
       "\n",
       "[102 rows x 3 columns]"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get the samples rows from the lossdf\n",
    "lossdf.loc[samples].sort_values(by='loss_mutual', ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fb28423ec10>"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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8Prrr7t6jbnWN2XKFLzwwgs44ogj1ON08eLFhvcGgGOPPRaLFi2ybX1mnn76aezYsQNnn312ztflazz00EMNazz99NPV13XTZ9HONZr3v1vXyLdz5cqVOOaYYwznU34MWq0vk8ng4YcfxuDgIObOneva9enXWMw+vOqqq3DCCSdkfR7567hxjaXsww0bNuCTTz5BZ2cnpkyZgm9+85v47LPPXL0+zqJFi3KeJ/WvdcABB+CUU05Be3s75syZg9///vd5X9eKYQUqkiThsssuw6GHHoq9994bALB161bVu6BnzJgx2Lp1q+XrvPnmm3jkkUdw/vnn53yvn//85xgYGMCpp56a8zn89ceMGZPzvdesWQMAuP766/Hf//3fePbZZ9HS0oIjjzwSO3fuLHqNfr8fS5YsMezMKVOm4NBDD8Vhhx2GQCCA3XffHUceeSSuueaamlljc3MzXn75ZXzyySeQJAkvvvginnjiCWzZssW1a7Ra33e/+10AwP7774/DDz8cN954o/oefX19lu+9YcMG29Zn5o9//COOPfbYnAM9+RrD4TBmzpypvk8wGMTkyZPR19eHeDxe8H3s3Id2rdG8/926Rv129vf3q6/Dz6f82IzH4+rPli9fjvr6eoRCIVxwwQV48skn0dPT48r16ddYzD4MBAJYt24dbrnllqzXqZV92NjYiPvuuw8vvPAC7r77bqxduxaHH344XnrpJVeuz/zaVq+r34dr1qzB3XffjalTp2LBggW48MILcemll+LPf/5z3tc2M6xA5eKLL8aKFSvw8MMPl/0aK1aswEknnYQf//jH+OIXv2j5nAcffBA33HAD/va3v6G9vR0A8MADD6jGpPr6evz73/8u6v0kSQIAXHvttfjqV7+K/fffH/feey8EQcCjjz4KAJg5c6b6upMmTcpa44cffoh0Oo3f//736ocNAPr7+7Fo0SLcddddeP/99/HEE0/gueeewyWXXFIza9xtt93Q0tKCGTNmIBgM4pJLLlEDGbeuMRQK4eWXXzas79JLL0UgEMCDDz6I5557Dj//+c/zvt/mzZvR09Nj2/r0bNy4EQsWLMC5555reFz/uvvssw9WrFiBjo6Okl+fY/dnUU8116g/T7l5jaFQCK+99lpJ59Pp06dj6dKlePvtt3HhhRfim9/8Jk488URXrq+UfbhhwwasX78eJ554IsLhsOFntbQPp0yZglNOOQWzZs3Csccei+effx47duzAl7/8ZVeur76+HhdccEHRrydJEvbbbz/cfPPNmDNnDs4//3ycd955uOeee0rbsHJzRhdffDEbP348W7NmjeHxl19+mQFgu3btMjw+ceJEdvvttxse++CDD1h7ezu75pprcr7PQw89xCKRCHv22WcNj/f19bFPPvlE/ReLxdjq1asZALZkyRLDcz/3uc+xSy+9lDHG2CuvvMIAsH//+9+G5xx00EHqdqxbt4598skn7IwzzmBjx441rHHhwoUsHA5brjEUCrEjjzzS8Nitt97KALCrr766JtbI92M8HmcbN25kkiSxc845h/l8PlfuxzPOOIN1dHSwN9980/A8/XHKjWvpdJpNnDiRNTc3s1/+8pfqcz/44ANWV1fH2tvbbVufnhtvvJG1tbWxZDJpeJy/5hlnnME6OzvZmjVr2OGHH67m8fkaf/vb37LGxkb19/SfRSgeFSc+i3asUX+ecvMa+XH6zjvvMMaYukb9cfqnP/1JXWOu82kgEGCzZ8923fpK3YdPPvkkA8AEQWA+n4/5fD4GQP33ox/9yHVrrNQ+9Pv9bO7cua5bH/+3bds2w/r06NfH13juuecannPXXXexzs7OnOuzouRARZIkdvHFF7POzk62atWqrJ9z49Bjjz2mPvbxxx9nmb9WrFjB2tvb2Q9/+MOc7/Xggw+ycDjMnnrqqaK3raOjg/385z9XH+vt7TUYh/j3ehNmMplk7e3t7He/+13eNb766qusrq6O/exnP8u5xjPOOMOwxsbGRub3+1k6na6ZNer345IlS5jP52MHH3xwzm12Yo2lHKd//vOfmd/vZ8uXL1fNtCeeeCJjTDtOOzs72Xe/+13b1qd/7uTJk7MMzPxn5jVeeeWVbO+99zas8bDDDlMNbuZ9CIDdcccdjnwWq73Gr371q+rvOXW+KbTGXMcpX6P+OP3GN77Bjj322Lzn0wkTJrBvf/vbrllfrjUW2oeLFy9mANj999/Pli9fzpYvX85mzpzJwuGwau53yxoruQ/b2tpYKBRid9xxh2vWlwv9PuTw9em/N5tpL7vssryBmBUlByoXXngha2pqYgsXLjSUM8ViMfU5F1xwAZs4cSJ75ZVX2Hvvvcfmzp1r2LDly5eztrY2dsYZZxheo6urS33OAw88wPx+P7vzzjsNz+np6cm7fbfeeitrbm5mf//739l//vMfdtJJJ2WVtX7/+99n48aNYwsWLGAff/wxO/fcc1l7ezvbuXNnzjU+9thjLBKJsKuvvppt2bKFfetb32Ljxo1jTz31lLrG8ePHs4aGBvbQQw+xf/zjH6ypqYnV19ez+fPn18wa99lnH/b444+z1atXs/vuu48FAgFWV1fHPv74Y1etMddx+qc//Yk98sgj7MMPP2Snn346Gz16NBs1ahT70pe+pB6nb7zxBvP7/eyKK65gra2tbNasWczv97NXX33V1vUxxthLL73EALCPPvoo6zWs1vj222+zSCTCfvjDH7KPPvpILfu87bbb1H140EEHsSVLlrAlS5YwAKy+vp6dcMIJ7N1337V9H1ZrjWPGjFF/79VXX1VLW9esWeOqNeY6Tj/88EMWjUbZD3/4w6zSVn6c/uhHP2KvvfYae+GFF1hLSwubOXMmA8Aefvhh16xvOPvQfM0IBAJsxowZjlwzqrUPr7jiCrZw4UL2wgsvsObmZtbR0cFaW1vZ8uXLXbO+XPDyZL4P77zzzqzy5HfeeYf5/X520003sU8++YQ98MADLBqNsvvvv7+o9+CUHKjo5Tf9v3vvvVd9TjweZxdddBFraWlh0WiUffnLX2ZbtmxRf/7jH//Y8jV222039TlHHHGE5XNy3S1wJEli//M//8PGjBnDQqEQO/roo9nKlSsNz0kmk+yKK65g7e3trKGhgR1zzDFsxYoVBddo9c/v96tr3LBhA7v++uvZ7rvvniVV1soaH3/8cbbnnnuyUCjEIpGIa9eYay0XXHAB22+//Vh9fT2LRqOspaWFRSKRrOP0b3/7G2ttbXV0fYzJdyT6HkR6cq3xqquuYrNnz2bBYJBNmjSJff7znzd8Fh9//PGC+9zrayzmuHbDGvOdT1999VU2e/ZsFggEWGNjI6urqzMcp+eccw7bbbfdmCiKrl1fvjUW2oduumbkW+Nw9uFpp53Gxo4d6/p9mAu+vmAwyKZMmWKIAzjPPPMM23vvvVkoFGIzZsxg//d//1fSezDGmMAYYyAIgiAIgnAhNOuHIAiCIAjXQoEKQRAEQRCuhQIVgiAIgiBcCwUqBEEQBEG4FgpUCIIgCIJwLRSoEARBEAThWihQIQiCIAjCtVCgQhAEQRCEa6FAhSAIgiAI10KBCkEQBEEQroUCFYIgCIIgXAsFKgRBEARBuJb/Dz1dBkB7kVLKAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sample_num = 4272#2256#20136\n",
    "batch_x, batch_y, timestamp_x, timestamp_y, batch_x_hetero, batch_y_hetero, hetero_x_time, hetero_y_time, hetero_general, hetero_channel = fullsets['314106'][sample_num]\n",
    "\n",
    "batch_x = torch.tensor(batch_x).unsqueeze(0).float().to(config.device)\n",
    "batch_y = torch.tensor(batch_y).unsqueeze(0).float().to(config.device)\n",
    "batch_y_hetero = torch.tensor(batch_y_hetero).unsqueeze(0).float().to(config.device)\n",
    "hetero_channel = torch.tensor(hetero_channel).unsqueeze(0).float().to(config.device)\n",
    "\n",
    "output_TST = model_TST(x=batch_x)\n",
    "output_TST = output_TST[:, -config.output_len:, :]\n",
    "\n",
    "output_TGTSF = model_TGTSF(x=batch_x, historical_events =batch_x_hetero, news = batch_y_hetero, dataset_description=hetero_general, channel_description=hetero_channel)\n",
    "output_TGTSF = output_TGTSF[:, -config.output_len:, :]\n",
    "\n",
    "\n",
    "\n",
    "indate = [str(i) for i in timestamp_x]\n",
    "outdate = [str(i) for i in timestamp_y]\n",
    "# convert the yyyymmddHHMMSS to datetime\n",
    "indate = pd.to_datetime(indate, format='%Y%m%d%H%M%S')\n",
    "outdate = pd.to_datetime(outdate, format='%Y%m%d%H%M%S')\n",
    "# reformat the indate as datetime\n",
    "# plot the result\n",
    "# enable inline plotting\n",
    "%matplotlib inline\n",
    "plt.plot(indate, batch_x.cpu().detach().numpy().squeeze(), label='input')\n",
    "plt.plot(outdate, batch_y.cpu().detach().numpy().squeeze(), label='target')\n",
    "plt.plot(outdate, output_TST.cpu().detach().numpy().squeeze(), label='PatchTST')\n",
    "plt.plot(outdate, output_TGTSF.cpu().detach().numpy().squeeze(), label='TGTSF')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "uni2ts",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
